如何使用wpf中的事件聚合器在另一个viewmodel中调用该方法

时间:2017-08-16 06:48:47

标签: wpf prism eventaggregator

我有两个视图和两个名为Part和partItem的ViewModel。我在PartViewModel中有一个私有方法,我只需要使用EventAggregator从PartitemViewModel调用该方法。

2 个答案:

答案 0 :(得分:0)

将该方法移至可用于两个视图模型的服务中,或者创建一个事件并在PartViewModel中订阅该事件并从PartItemViewModel发布。

事件变体的缺点是您无法轻易返回任何内容。还要考虑如果你有多个PartViewModel个实例,那么所有实例都会对事件做出反应。

答案 1 :(得分:0)

您似乎误解了事件聚合器的全部内容:发布者和订阅者之间的松散耦合。

您永远不会使用事件聚合器调用另一个视图模型的方法。

发布者发布一个事件,并且不知道任何可能已订阅接收相同类型消息的订阅者。

发布者和订阅者只知道事件聚合器,但他们对彼此一无所知。这就是首先使用事件聚合器的重点。

有关详细信息,请参阅以下链接:https://blog.magnusmontin.net/2014/02/28/using-the-event-aggregator-pattern-to-communicate-between-view-models/