2010-03-11 86 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

相關問題