在WPF MVVM中传递两个视图模型

gui*_*cgs 9 c# wpf mvvm

我正在开发一个WPF应用程序,我有一些问题要将一个视图模型与另一个模型进行通信.

我有:

  1. MainViewModel
  2. ChildViewModel1
  3. ChildViewModel2

每次在MainViewModel中更改属性时,都应通知ChildViewModel1和ChildViewModel2.

任何人都可以建议解决方法?

编辑:我正在考虑一个解决MVVM Light(http://simplemvvmtoolkit.codeplex.com/SourceControl/changeset/view/23821#313594.)的解决方案,即实现消息总线.这是正确的方法吗?

sll*_*sll 12

在大多数情况下,我不建议使用任何集中的地方来共享"事件"/"通知",如EventAggregator等.这导致后来的问题与ViewModel之间的关系不明确有关.在非常特定的情况下,即使在设计阶段,即使不知道收听者/出版者之间的关系,这种通知也是有意义的 我建议使用ViewModel之间的关系绘制简单的图表并找到使用标准.NET事件的方法,因此当ViewModel之间有明确的实现时,ViewModel1会引用ViewModel2,因此可以订阅事件或提供自己的回调,所以它会很容易建立这样的事件通知.

  • 这是一个很好的答案,但由于我的应用程序非常简单,我将使用"集中的地方共享"事件"/"通知",如EventAggregator",因为有大量的参考和代码示例 (2认同)