繁体   English   中英

使用wpf mvvm在同一视图上的视图模型之间切换

[英]switch between viewmodels on the same view using wpf mvvm

我是WPF MVVM的新手,有点卡住了。 我需要使用带有wpf的MVVM在同一视图上切换大约100个不同的表。 我有Treeview的表名列表和项目选择,必须在Treeview旁边显示正确的DataGrid。 我为每个表创建了Model和ViewModel类。 但是,如何根据选择选择要绑定的正确Viewmodel。

如果我理解你的问题 - 那你就有设计问题。

首先获取TreeViewSelectedItem

要使用SelectedItem - TreeView上的Binding ,请参阅此内容 但你可以在后面的代码中做坏事。

第二次绑定您的SelectedItem

所以你想要做的是:将SelectedItem绑定在ContentControlContentPresenter类的东西上。 或者在后面的代码中做坏事。

例如这样:

<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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM