使用 Prism 和事件聚合器处理页面大小更改事件
我需要捕获 WPF 浏览器应用程序中何时触发 Page_SizeChanged 事件,并通过 Prism EventAggregator 发布该事件。由于我感兴趣的页面恰好是 Shell 页面,因此我没有附加可以访问事件聚合器的 ViewModel。
I need to capture when the Page_SizeChanged event fires in a WPF Browser application and publish the event through the Prism EventAggregator. Since the page I am interested in happens to be the Shell page, I don't have a ViewModel attached where I can access the eventaggregator.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在初始化 shell 的引导程序(即 UnityBootstrapper 派生类)中,IEventAggragator 在调用基类 ConfigureContainer 方法期间向 Unity 容器注册。因此,如果您重写ConfigureContainer,则可以解析事件聚合器:
此时,您可以使用事件聚合器实例在shell\viewmodel 上设置属性,或者例如使用服务定位器类型模式。这取决于你。
In your bootstrapper (i.e. UnityBootstrapper derived class) where you initialize your shell, IEventAggragator is registered with the Unity container during the call to the base class ConfigureContainer method. Therefore if you override ConfigureContainer, you can resolve the event aggregator:
At this point you could set a property on your shell\viewmodel with the event aggregator instance, or use a service locator type pattern for example. That's up to you.