根据 Prism 文档,跨模块通信有四种方式:
- 解决方案命令
- 区域上下文
- 共享服务
事件聚合
- 我可以选择其中一种方法并将其应用于所有跨模块通信吗?还是应根据情况使用不同的方法?
- 特别是,在我目前编写的应用程序中,我在一个模块中有一个按钮,当用户单击它时,我想要在另一个模块中启动一个线程。我应该使用哪种通信方法来处理这种情况?
答案1:可以使用单一的方法来处理。大多数情况下,这样做更容易。
答案2:我建议您使用 事件聚合 来实现。这样,按钮点击和线程执行之间就有了非常松散的耦合。这样,监听模块 只需知道单个 事件,而不需要关心它来自何处。
由于这是单个的 通知,而不是一堆相互关联的 通知/通讯,因此最好是 聚合 一个事件,而不是创建一个 共享服务。