使用UWP App的Prism松耦合组件之间的通信

问题描述

我对Prism并不陌生,一直在研究设计具有2个XAML视图的UWP App。这两个视图将松散耦合,我想在两个视图之间传递消息。一个视图将具有一个按钮,单击此按钮将向该视图发送一条消息,该消息将高亮显示显示在该视图的列表中。我正在阅读Prism文档,并且对什么是最好的沟通方式有些困惑?我的案例特别受益于解决方案命令或使用IEvent Aggregator。引用这篇文章Communicating across modules with Prism?,我很想了解为什么IEeventAggregator是一个很好的解决方

解决方法

使用事件聚合器的目的是消除事件或消息的生产者与使用者之间的紧密联系。

如果要将消息从应用程序中的一个组件发送到另一个组件,则可以 通过引发事件或调用对使用者有强烈引用的方法来做到这一点。这样做的缺点是,您在订阅者和发布者类之间创建了强烈的依赖关系,这使应用程序更难维护且维护成本更高。

解决方案是在发布者和订阅者之间引入事件聚合器。然后,订阅者和发布者只知道事件聚合器。他们彼此之间一无所知,这意味着他们可以彼此独立地发展。

有关该概念的更多信息,请参阅this blog post

编辑:要回答您的实际问题,通常在用户互动中期望立即采取行动事件聚合时,通常使用解决方案命令当没有直接的行动-反应期望时,使用strong>。

有关更多信息,请参阅docs