将信息从父视图模型传递到子视图模型的正确 MVVM 方法



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

我有以下几点:

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

我想知道实现这个简单场景的最简单/最佳/适当的 MVVM 方法是什么?

当涉及到TabControl s等时,我倾向于让子视图模型在MasterViewModel集合中

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

设置 ID 或创建子视图模型后,可以对其设置属性

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

最新更新