2

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

我有以下内容:

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

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

4

1 回答 1

3

当涉及到TabControls 等时,我倾向于将子视图模型放在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");  
        }
}
于 2012-04-24T19:45:06.383 回答