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;                
});

我在PublishSubscribe上都设置了一个断点,可以看到发布代码只触发一次,而订阅代码则触发两次。这是由显示两次的消息框备份的。我已经运行搜索任何其他发布代码,但没有找到。

任何想法?

Prism EventAggregator订阅执行两次

确保Subscribe方法只被调用一次。

如果它被调用两次,相同的事件将触发相同的回调,就像有完全不同的处理程序响应相同的事件一样。