我在一个viewmodel中创建了一个事件,并希望另一个订阅它,我该如何找到它? WPF MVVM

时间:2013-07-25 09:58:16

标签: wpf events mvvm viewmodel

正如标题所述...我怎样才能找到不同的视图模型......

我的第一个猜测是搜索用户控件,然后通过它...但是对于一些必须易于找到的东西来说似乎有很多工作....

3 个答案:

答案 0 :(得分:1)

您可能需要使用允许您在VM之间进行通信的通用消息传递机制 - 例如,参见MVVM Light

答案 1 :(得分:1)

您可以使用 Messenger Class。

当您想要执行其他 ViewModel 中的一个 Viewmodel 中存在的方法时。您只需向 ViewModel 发送消息(它从 ViewModel (你想从中获取)来保存你想要执行的事件,并且可以执行该事件。

在声明事件的类的构造函数中注册消息。 在您要使用该事件的位置,从 viewmodel (您要在其中访问)发送消息

答案 2 :(得分:0)

两个视图模型如何关联?一个是另一个的父母吗?在这种最佳情况下,您可以将事件或委托公开在另一个订阅的事件或委托中。

同样,如果他们有一个共同的父母,这可以在父视图模型中完成。

如果没有关系,那么如何将所有常用功能放入基本视图模型类中。如果事件或委托在基本视图模型中公开,那么扩展它的每个视图模型都可以在内部订阅它。