Prism EventAggregator 订阅执行两次

Prism EventAggregator subscribe executing twice

我遇到了类似的问题 post Prism CompositePresentationEvent fires twice

我的问题是 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 处都设置了断点,可以看到发布仅触发一次,而订阅代码触发两次。这是由显示两次的消息框支持的。 我 运行 搜索任何其他发布代码并找到 none.

有什么想法吗?

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

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