c# - 在 WPF MVVM 中通信两个 View 模型

标签 c# wpf mvvm

<分区>

我正在开发一个 WPF 应用程序,我在将一个 View 模型与另一个 View 模型进行通信时遇到了一些问题。

我有:

  1. 主视图模型
  2. ChildViewModel1
  3. ChildViewModel2

每次 MainViewModel 中的属性更改时,ChildViewModel1 和 ChildViewModel2 都应该得到通知。

谁能提出解决方法?

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

最佳答案

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

关于c# - 在 WPF MVVM 中通信两个 View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16149146/

相关文章:

c# - 在 Azure 存储客户端 2.0 中将一个 Azure blob 复制到另一个 blob

c# - WPF面板旋转?

.net - 使用 DataTrigger 和绑定(bind)触发动画

c# - 中继命令可以执行和任务

c# - 在循环中动态创建对象

c# - 如何获取以下 JSON 的 C# 对象

C#:将音频文件从服务器流式传输到客户端

c# - 如何从字符串转换回枚举

wpf - 为什么在 MVVM 应用程序的 Controller 构造函数参数中使用 Func<>

c# - 在 Site.Master 页面中单击按钮会触发内容页面中的单击事件。