首页 文章

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

提问于
浏览
1

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

1 回答

  • 0

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

    First 获取 TreeViewSelectedItem

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

    Second 绑定你的 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>
    

    Third (optional) 如果你有不同的 DataGrids

    您也可以使用DataTemplateSelector来更改您的视图,具体取决于您的SelectedItem . 您将在此示例中的 ContentPresenter 上使用它 .

相关问题