【问题标题】:What is the best way to handle navigation with PRISM?使用 PRISM 处理导航的最佳方法是什么?
【发布时间】:2010-03-11 21:18:10
【问题描述】:

使用Prism - 在 WPF 应用程序中处理导航的最佳方式是什么?你如何应用它?有没有最佳实践?

在我的应用程序中,我目前正在使用事件聚合。在程序中应该导致导航的任何菜单项或其他项都将发布事件,并且负责打开由发布的事件表示的视图的模块将这样做。这很好用,但我觉得这不是使用 Prism 处理导航的最佳方式。是吗?

【问题讨论】:

    标签: .net wpf navigation prism


    【解决方案1】:

    至少在 Prism 方面,这是一种与其他方法一样好的方法。我以前做过的一种方法是将一个模块/类设置为您的“导航代理”;对于 MDI 类型的应用程序,由于缺乏创造力,我通常将其称为 WindowManager。这家伙将被注入 IRegionManager 和 IEventAggregator 并开始侦听任何“新窗口”或“导航至”类型的事件并适当地更改/创建区域。如果你想稍微聪明一点,可以开始使用作用域区域管理器:

    http://msdn.microsoft.com/en-us/library/cc707903.aspx

    http://blogs.msdn.com/erwinvandervalk/archive/2009/04/29/how-to-build-an-outlook-style-application-with-prism-v2-part-2.aspx

    这种策略的主要问题(以及一般使用事件聚合方面)是您需要由多个模块或至少在提升模块“外部”处理的任何 CompositePresentationEvents,您需要在一个公共位置声明(我通常将它们放在一个名为 Infrastructure 的项目中)。这个我不太喜欢。

    【讨论】:

    • 感谢您的回答! Navigation Broker 的想法听起来很合理。我有点做同样的事情 - 只是我每个模块都有一个经纪人。将查看范围内的区域经理。
    猜你喜欢
    • 2010-09-06
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多