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;
});
我在 Publish
和 Subscribe
处都设置了断点,可以看到发布仅触发一次,而订阅代码触发两次。这是由显示两次的消息框支持的。
我 运行 搜索任何其他发布代码并找到 none.
有什么想法吗?
确保 Subscribe
方法只被调用一次。
如果它被调用两次,同一个事件将触发同一个回调,就像有完全不同的处理程序对同一个事件做出反应一样。
我遇到了类似的问题 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;
});
我在 Publish
和 Subscribe
处都设置了断点,可以看到发布仅触发一次,而订阅代码触发两次。这是由显示两次的消息框支持的。
我 运行 搜索任何其他发布代码并找到 none.
有什么想法吗?
确保 Subscribe
方法只被调用一次。
如果它被调用两次,同一个事件将触发同一个回调,就像有完全不同的处理程序对同一个事件做出反应一样。