EventAggregator 如何注册事件和订阅者并通知所有订阅者事件触发?
How does an EventAggregator register events and subscribers and notify all subscribers of events firing?
我阅读了 EventAggregator 模式,特别是针对 MVVM 的,虽然我认为一个 class 在其中注册一个事件,而其他 classes 可以订阅该事件,我'我已经看到一些接口,但我无法想象这些代码实际上是如何工作的。
如何注册和订阅活动?
此外,如何通知订阅者事件的触发?
谢谢!
这取决于事件聚合器的实现。
在 Prism 的版本中,您可以像这样发布 MessageSentEvent
(public class MessageSentEvent : PubSubEvent<string> {}
):
_eventAggregator.GetEvent<MessageSentEvent>().Publish("hello");
...并像这样订阅它:
_eventAggregator.GetEvent<MessageSentEvent>().Subscribe(message => MessageBox.Show(message));
GitHub 上有完整的代码示例。
view model in ModuleA sends a message to the view model in ModuleB.
我阅读了 EventAggregator 模式,特别是针对 MVVM 的,虽然我认为一个 class 在其中注册一个事件,而其他 classes 可以订阅该事件,我'我已经看到一些接口,但我无法想象这些代码实际上是如何工作的。
如何注册和订阅活动?
此外,如何通知订阅者事件的触发?
谢谢!
这取决于事件聚合器的实现。
在 Prism 的版本中,您可以像这样发布 MessageSentEvent
(public class MessageSentEvent : PubSubEvent<string> {}
):
_eventAggregator.GetEvent<MessageSentEvent>().Publish("hello");
...并像这样订阅它:
_eventAggregator.GetEvent<MessageSentEvent>().Subscribe(message => MessageBox.Show(message));
GitHub 上有完整的代码示例。
view model in ModuleA sends a message to the view model in ModuleB.