![](/img/trans.png)
[英]WPF MVVM - Binding multiple View/ViewModels to same base ViewModel
[英]switch between viewmodels on the same view using wpf mvvm
我是WPF MVVM的新手,有点卡住了。 我需要使用带有wpf的MVVM在同一视图上切换大约100个不同的表。 我有Treeview的表名列表和项目选择,必须在Treeview旁边显示正确的DataGrid。 我为每个表创建了Model和ViewModel类。 但是,如何根据选择选择要绑定的正确Viewmodel。
如果我理解你的问题 - 那你就有设计问题。
首先获取TreeView
的SelectedItem
要使用SelectedItem
- TreeView上的Binding
,请参阅此内容 。 但你可以在后面的代码中做坏事。
第二次绑定您的SelectedItem
所以你想要做的是:将SelectedItem
绑定在ContentControl
或ContentPresenter
类的东西上。 或者在后面的代码中做坏事。
例如这样:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TreeView ItemsSource="{Binding MyItemSource}">
<!-- Get the selected item here (watch how to in the linked answer) -->
</TreeView>
<ContentPresenter Grid.Column="1"
Content="{Binding Path=SelectedItem}"
>
<ContentPresenter.ContentTemplate>
<DataTemplate>
<DataGrid>
<!-- Your DatGrids or what ever -->
</DataGrid>
</DataTemplate>
</ContentPresenter.ContentTemplate>
</ContentPresenter>
</Grid>
第三个(可选)如果您有不同的DataGrids
您也可以使用DataTemplateSelector来更改您的视图,具体取决于您的SelectedItem。 您将在此示例中的ContentPresenter
上使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.