我目前有一个看起来像这样的层次结构
MainWindowViewModel
TabViewModel
EditorViewModel
ReviewingServices
ConflictFinder
我遇到的问题是
TabViewModel
希望收到冲突通知(来自 ReviewingServices
)以及其他事情。我可以为我的所有依赖项创建公共(public) getter,并使用 DependencyA.DependencyB.DependencyC += SomeHandler;
订阅我想要的任何内容但这很困惑。我发现自己创造了太多我想计算的事件。从本质上讲,我创建了一个困惑的事件网络。我喜欢我为每个类(class)创建的职责分离,但是当每个类(class)都有 2-3 个事件时,维护起来相当困难。如果订阅者仅高于 1 级,我在创建和维护事件时没有问题。当说MainWindowViewModel
时,困惑就来了希望收到新评论的通知(从 ReviewingServies
发布。在订阅者可能想要订阅深深嵌套在应用程序中的事件的情况下,执行这些类型的事件是否有更好的方法?
最佳答案
我不知道我是否真的遇到了你的麻烦,但我建议看看某种事件聚合器。尝试查看Caliburn one ,但自己实现一个并没有太大的不同。有了这个,您可以使用类型命名事件并从任何地方订阅它。
关于c# - MVVM 交替事件模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7029150/