wpf - MVVM 多 View

标签 wpf mvvm

到目前为止,我一直在努力学习 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/

相关文章:

wpf - WPF MVVM设计问题

c# - DataTemplate内部的 Prism 区域

WPF Datagrid 单元格文本换行

c# - MVVM 与对象的通信

c# - 如果其他单元格更改,则更新 DataGrid 单元格

c# - MVC、MVP 和 MVVM 设计模式在编码 c# 方面有什么区别

c# - WPF ToggleButton 状态在鼠标悬停后重置为正常且未选中状态

c# - 如何读取项目根目录中的文本文件?

c# - 如何更改 WPF 日历控件中的默认 "today"日期?

c# - 检测自定义 wpf 文本框上的绑定(bind)错误