WPF MVVM:ViewModels如何相互通信?

Dev*_*ev1 19 wpf mvvm viewmodel

我有一个View,它有2个子视图,ViewModel分配给每个视图:

ViewA - ViewModelA
{ 
   ViewB - ViewModelB
   ViewC - ViewModelC
}
Run Code Online (Sandbox Code Playgroud)

ViewB有一个文本框,ViewC有一个组合框,我需要从ViewModelA访问这两个组合框.不是GUI控件本身,而是绑定值,即文本框的.Text和ComboBox的.SelectedItem.目前我只将ViewModelB和ViewModelC作为ViewModelA的属性,但感觉不对.

视图模型在不破坏MVVM模式的情况下相互通信的标准方法是什么?

Dan*_*ger 12

断开连接的ViewModels相互通信的一种方法是使用发布/订阅机制,例如PRISMEventAggregator.但是,在父/子ViewModel关系中,我认为父母可以直接了解和控制子ViewModel.

就个人而言,我不认为用其他ViewModel编写ViewModel是一种不好的做法.我一直这样做.我通常喜欢在ViewModel中使用组合而不是继承.