我有两个视图和两个名为Part和partItem的ViewModel。我在PartViewModel中有一个私有方法,我只需要使用EventAggregator从PartitemViewModel调用该方法。
答案 0 :(得分:0)
将该方法移至可用于两个视图模型的服务中,或者创建一个事件并在PartViewModel
中订阅该事件并从PartItemViewModel
发布。
事件变体的缺点是您无法轻易返回任何内容。还要考虑如果你有多个PartViewModel
个实例,那么所有实例都会对事件做出反应。
答案 1 :(得分:0)
您似乎误解了事件聚合器的全部内容:发布者和订阅者之间的松散耦合。
您永远不会使用事件聚合器调用另一个视图模型的方法。
发布者发布一个事件,并且不知道任何可能已订阅接收相同类型消息的订阅者。
发布者和订阅者只知道事件聚合器,但他们对彼此一无所知。这就是首先使用事件聚合器的重点。
有关详细信息,请参阅以下链接:https://blog.magnusmontin.net/2014/02/28/using-the-event-aggregator-pattern-to-communicate-between-view-models/