Prism,发布在shell中的事件没有被模块化!

时间:2009-07-10 13:29:27

标签: wpf events prism

我有一个wpf复合应用程序,它将始终加载3或4个模块。在我的shell中,我有一个带有按钮的工具栏,用于激活这些模块的相应视图。我将一个IEventAggregator注入shell presentor,这样当按下一个按钮时,我可以发布相应模块控制器订阅的事件。当事件被捕获时,控制者将激活其视图。

无论如何这个理论,实际上我的控制器捕捉事件。发布或订阅时没有错误。我一开始以为eventAggregator可能存在问题,但事实并非如此,并且该事件在发布时有订阅者。

有人能想到事件未被抓住的原因吗? (或者以不同方式提出我的观点的建议也会有所帮助!)

1 个答案:

答案 0 :(得分:1)

你的模块控制器是否“活着”?您是使用弱委托引用还是强引用订阅事件? 似乎正在发生的事情是您的模块控制器正在被处置,因此,事件不会被捕获。

要订阅强引用,请使用Subscribe方法中的 keepSubscriberReferenceAlive 选项。

您可以查看文档中的Event Aggregator文章,该文章可能会提供更多信息。

如果仍然不起作用,您可以与我分享您的repro代码,以便我可以查看吗? (ezequieljadib at hotmail dot com)

谢谢,

Ezequiel Jadib