mvvm - 将信息从父 View 模型传递到 subview 模型的正确 MVVM 方法

标签 mvvm

我正在使用 WPF 启动一个新的 MVVM 项目,我对这两个项目都不熟悉,并且想确保我使用的是正确的 MVVM 方法。

我有以下内容:

  • 我有一个主用户控件,其中包含自己的 ViewModel 和 TabControl
  • 每个选项卡都包含一个单独的用户控件及其自己的 ViewModel
  • 创建 MasterViewModel 后,会设置其属性之一(我们称之为 MasterId)
  • 我需要将 MasterId 属性更改从主视图模型传播到 subview 模型

我想知道实现这个简单场景的最简单/最好/正确的 MVVM 方法是什么?

最佳答案

当涉及到 TabControl 等时,我倾向于将 subview 模型放在 MasterViewModel 的集合中

 public ObservableCollection<ViewModelBase> Tabs { get; private set; }

当您的 ID 设置完毕或 subview 模型创建后,您就可以为其设置属性

public int MasterId
{
    get { return _masterId; }
    set { _masterId = value;
          foreach(var vm in Tabs)
             vm.MasterId = value; 
          NotifyPropertyChanged("MasterId");  
        }
}

关于mvvm - 将信息从父 View 模型传递到 subview 模型的正确 MVVM 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10304707/

相关文章:

从用户控件到窗口的 WPF MVVM 事件通知

c# - 如何将 MVVM 与 CRUD 操作一起使用?

c# - 双击 ListView GridView 行的命令

mvvm - 模板 10 UWP 如何绑定(bind)到 MenuFlyoutItem 内的 autoSuggestBox

javascript - 在按钮单击事件上绑定(bind) dxSelectBox

c# - wpf本地和外部绑定(bind)

c# - WPF Caliburn.Micro 和带有 UserControls 问题的 TabControl

silverlight-4.0 - 在 MVVM、MEF 实现中动态更改 View 的 ViewModel

c# - 如何在 WPF 应用程序中动态生成标签、按钮、复选框和文本框

c# - 将依赖属性与异步 ctp 一起使用