1

我需要在 WPF 浏览器应用程序中触发 Page_SizeChanged 事件时捕获并通过 Prism EventAggregator 发布事件。由于我感兴趣的页面恰好是 Shell 页面,因此我没有附加 ViewModel 来访问 eventtaggregator。

4

1 回答 1

1

在初始化 shell 的引导程序(即 UnityBootstrapper 派生类)中,IEventAggregator 在调用基类 ConfigureContainer 方法期间向 Unity 容器注册。因此,如果您覆盖 ConfigureContainer,您可以解析事件聚合器:

protected override void ConfigureContainer()
{
    base.ConfigureContainer();

    IEventAggregator eventService = Container.Resolve<IEventAggregator>();
}

此时,您可以使用事件聚合器实例在 shell\viewmodel 上设置属性,或者使用服务定位器类型模式。随你(由你决定。

于 2010-07-26T22:26:27.290 回答