到目前为止,我一直在努力学习 MVVM,但进展顺利,但我偶然发现了一种我不知道如何实现的情况..
我想要什么: - 具有左侧导航和右侧详细信息 Pane 的 View .. 右侧详细信息将包含一个内容容器,该容器将保存我的用户控件以供左侧 Pane 选择的 View
我有什么: - 一个主视图模型 - 数据库中每个实体的 ViewModels
我的问题: - 因为我将在我的 MAINVIEWMODEL 中有我的 VIEWMODELS 的 ObservableCollection(根据我正在模式化我的应用程序的示例),我是否为我的每个 MODEL 实体创建一个公共(public)属性,它将用于我在我的 UserControls 中定义的数据绑定(bind)??
最佳答案
您可以为所有显示在右侧的 ViewModel 创建一个基本类型。(我们称其为 BaseContentViewModel)
然后您的左侧 ListBox 将绑定(bind)到 ObservableCollection<BaseContentViewModel>
并且 ListBox 的 SelectedValue 将绑定(bind)到类型为 BaseContentViewModel 的新 MainViewModel.SelectedContent 属性。
在右侧,您需要有一个 ContentControl,SelectedContent 绑定(bind)到 ContentControl.Content
现在只需将不同的 UserControl 定义为 Resource XAML 中的 DataTemplates(通常指 MVVM 中的 ViewToViewModelMapping)
关于wpf - MVVM 多 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2222087/