c# - 我什么时候应该在事件聚合器上使用事件处理程序?

标签 c# wpf mvvm event-handling eventaggregator

我应该在什么时候使用事件处理程序而不是事件聚合器?

在我的代码中,我有两个由父 ViewModel 控制的 ViewModel,我想决定是否应该只使用事件处理程序在它们之间进行通信?或者使用事件聚合器?这将只是简单的方法调用,我不需要在它们之间传递参数。

最佳答案

在我看来,EventAggregator 通常是您想要将事件发布到整个应用程序时使用的重型枪,更具体地说 - 当您不这样做时不知道到底是谁在听。

在您的场景中,情况并非如此,您有 2 个 View 模型想要通信,但它们彼此认识。所以没有理由不能使用 events

我只想提一下,如果你想让它保持更松散的耦合 - 为每个公开事件的 View 模型创建一个接口(interface)。这样每个 VM 将使用其他 VM 的接口(interface)而不是特定实例。

关于c# - 我什么时候应该在事件聚合器上使用事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13565774/

相关文章:

wpf - Caliburn Micro-使用容器的ActivateItem

mvvm - 剑道 ui mvvm : dynamically update multiselect datasource inside View Model' s change event

c# - Project Euler 1 :Find the sum of all the multiples of 3 or 5 below 1000, 适用于 10 个数字,但不适用于 1000 个数字

c# - 为什么一个属性被认为是不明确的,而另一个接口(interface)是只设置的?

wpf - WPF中通过Uid获取对象

c# - 我应该压缩内存中的 C# 对象以获得更好的性能吗?

c# - 从事件更新 Viewmodel - PropertyChangedEventHandler 为空?

c# - 没有从 ApplicationUser 到 IdentityUser 的隐式引用转换

c# - 如何检测 C# 中的特定单词

c# - 在运行时生成图像