Prism EventAggregator订阅执行两次
本文关键字:两次 执行 EventAggregator Prism | 更新日期: 2023-09-27 18:14:53
我有一个类似的问题Prism CompositePresentationEvent触发两次
我的问题是Publish
只触发一次,但Subscribe
中的代码执行两次。
这是我的发布代码
EventAggregator.GetEvent<PubSubEvent<HardwareLoaded>>().Publish(new HardwareLoaded() { HardwareOK = _HardwareOK });
和订阅码。
IEventAggregator.GetEvent<PubSubEvent<HardwareLoaded>>().Subscribe(x =>
{
if (!x.HardwareOK)
{
MessageBox.Show("There was an issue loading hardware. See Log");
}
LoadingVisibility = Visibility.Collapsed;
});
我在Publish
和Subscribe
上都设置了一个断点,可以看到发布代码只触发一次,而订阅代码则触发两次。这是由显示两次的消息框备份的。我已经运行搜索任何其他发布代码,但没有找到。
任何想法?
确保Subscribe
方法只被调用一次。
如果它被调用两次,相同的事件将触发相同的回调,就像有完全不同的处理程序响应相同的事件一样。