MVVM中控制器之间的通信

时间:2014-03-29 14:10:08

标签: wpf mvvm

我想知道在MVVM中控制器之间进行通信的最佳方式是什么。

  1. 我可以使用依赖注入,以便每个控制器自动获得对它想要与之通信的控制器的引用。
  2. 我可以在我的MainController中有引用,并且每个其他控制器都必须要求MainController进行通信。
  3. 无论如何,我还想知道首先在控制器之间进行通信是否是一个好主意。你能告诉我有关这方面的任何信息吗?

2 个答案:

答案 0 :(得分:1)

如果您使用MVVM Light,则可以使用Messaging功能在控制器之间进行通信。

简短概述:控制器可以注册某种类型的消息(可能只是一个类),而其他可以发送此对象。

请参阅MVVM Light Messenger - Sending and Registering Objects了解示例

答案 1 :(得分:0)

您是一个事件聚合器是一个很好的方法。 MVVM Light我相信有一个内置,我知道Caliburn.Micro。但是制作自己的东西也是微不足道的。这将使您可以轻松地从一个ViewModel与多个ViewModel进行通信,您也可以轻松地模拟它们以进行测试。