【问题标题】:MVVM multiple viewsMVVM 多视图
【发布时间】:2010-02-08 14:13:17
【问题描述】:

到目前为止,我正在尝试学习 MVVM,它进展顺利,我偶然发现了一个我不知道如何实现的情况..

我想要什么: - 带有左侧导航和右侧详细信息窗格的视图 .. 右侧详细信息将有一个内容容器,用于保存我的用户控件,以便由左侧窗格选择视图

我有什么: - 主视图模型 - 我在数据库中拥有的每个实体的 ViewModel

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

【问题讨论】:

    标签: wpf mvvm


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2019-04-10
        • 2015-06-27
        • 1970-01-01
        • 1970-01-01
        • 2011-06-19
        • 1970-01-01
        • 1970-01-01
        • 2012-06-08
        • 1970-01-01
        相关资源
        最近更新 更多