MVVM多个视图

时间:2010-02-08 14:13:17

标签: wpf mvvm

我试图学习MVVM到目前为止一切顺利,我偶然发现了一个我不知道如何实现的情况。

我想要的:   - 具有左侧导航和右侧详细信息窗格的视图..右侧详细信息将包含一个contentcontainer,用于保存我的用户控件以供左窗格选择的视图

我拥有的:    - MainViewModel    - 我在数据库中拥有的每个实体的ViewModel

我的问题:   - 因为我的MAINVIEWMODEL中有一个ObservableCollection我的VIEWMODEL(根据我的应用程序模式示例)我是否为我的每个MODEL实体创建一个公共属性,它将用于我在UserControls中定义的数据绑定??

2 个答案:

答案 0 :(得分:5)

您可以为要在右侧显示的所有ViewModel创建基本类型。(让我们将其称为 BaseContentViewModel ) 然后你的左侧ListBox将绑定到ObservableCollection<BaseContentViewModel>,ListBox的SelectedValue将绑定到Type BaseContentViewModel 的新 MainViewModel.SelectedContent 属性。

在右侧,你需要有一个ContentControl, SelectedContent 绑定到 ContentControl.Content

现在只需将资源XAML中的不同UserControl定义为DataTemplates(通常称为MVVM中的ViewToViewModelMapping)

答案 1 :(得分:2)

看看John Papa的PDC演讲“使用Microsoft Silverlight构建大规模应用程序的高级主题”。在其中,他演示了一种管理具有多个MVVM三元组的应用程序的方法。