MVVM多视图

3

我正在尝试学习MVVM,目前进展顺利,但我遇到了一个问题,不知道如何实现...

我的需求: - 一个带有左导航和右侧详细信息面板的视图...右侧详细信息将有一个内容容器,其中将保存由左侧面板选择的视图的用户控件

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

我的问题: - 由于我会在我的MAINVIEWMODEL中拥有一个我的VIEWMODELS的ObservableCollection(根据我正在模仿的示例),所以我是否为我每个MODEL实体创建一个公共属性,这些属性将用于我在UserControls中定义的数据绑定?

2个回答

5
你可以创建一个基础类型来显示在右侧的所有ViewModel(我们称之为BaseContentViewModel)。 然后,你的左侧ListBox将绑定到ObservableCollection<BaseContentViewModel>,而ListBox的SelectedValue将绑定到一个新的MainViewModel.SelectedContent属性,该属性的类型为BaseContentViewModel
在右侧,你需要有一个ContentControl,它将SelectedContent绑定到ContentControl.Content上。
现在只需在资源XAML中定义不同的UserControls作为DataTemplates(通常在MVVM中称为ViewToViewModelMapping),就可以了。

2
请看约翰·帕帕在PDC演讲中的“使用Microsoft Silverlight构建大型应用程序的高级主题”。他阐述了一种管理具有多个MVVM三元组的应用程序的方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接