2010-03-11 89 views
3

使用Prism - 在WPF应用程序中处理导航的最佳方式是什么?你如何应用这个?有没有最佳做法?使用PRISM处理导航的最佳方式是什么?

在我的应用程序中,我正在使用事件聚合。任何导致程序导航的菜单项或其他项目都将发布一个事件,负责打开已发布事件所代表的视图的模块将会这样做。这工作得很好,但我有一种感觉,这不是用Prism处理导航的最佳方式。是吗?

回答

3

至少在棱镜方面,它和其他方法一样好。我之前完成的一种方法是设置一个模块/类作为您的“导航代理”;对于MDI类型的应用程序,由于缺乏创造力,我通常称之为WindowManager。这个人将注入IRegionManager和IEventAggregator,并开始监听任何“新窗口”或“导航到”类型的事件并适当地修改/创建区域。如果你想获得小幅聪明,你就可以开始使用作用域RegionManagers:

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你需要由多个模块来处理,或者至少需要在提升模块的“外部”进行处理,您需要在一个公共位置声明(我通常将它们放在一个名为基础架构的项目中)。这我不太喜欢。

+0

感谢您的回答!导航代理理念听起来很合理。我有点相同 - 只是我有一个模块经纪人。将看看范围区域经理。 – stiank81 2010-03-12 21:51:30

相关问题