2012-11-12 61 views
4

我使用Prism 4和Unity對WPF應用程序進行了概念驗證,但遇到了一些基本問題。使用Prism和Unity切換不同模塊中的視圖

在我們的解決方案,我們有以下項目:

-AppName.Desktop 
-AppName.Modules.ModuleA 
-AppName.Modules.ModuleB 

已經跟着一些教程,探索一些例子,在網上搜索,我沒能找到一個合適的答案,一個非常基本的問題;我怎樣才能在不同的DLL的兩個視圖之間切換。

第一視圖(ModuleAView)加載在ModuleA的初始化方法:

public void Initialize() 
{ 
    regionManager.RegisterViewWithRegion("MainRegion", typeof(Views.ModuleAView)); 
} 

當我在ModuleAView點擊(或在ModuleAView按鈕)我想切換到ModuleBView。

public bool SomeEventInModuleAView(SomeEventParams e) 
{ 
    Uri viewNav = new Uri("ModuleBView", UriKind.Absolute); 
    regionManager.RequestNavigate(RegionNames.MainRegion, viewNav); 
} 

顯然這不起作用,因爲ModuleA不知道在哪裏可以找到ModuleBView。我已經閱讀了關於使用pack/application/component等來更改URI,但我似乎無法使其工作。

我的想法是這樣的:

Uri("pack://application:,,,/AppName.Modules.ModuleB;component/Views/ModuleBView.xaml", UriKind.Absolute); 

由於來自不同的組件加載的模塊是棱鏡的目的之一,我認爲這是奇怪的是,有沒有在棱鏡任何例子下載展示如何這工作。

回答