我正在使用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");
}
}