我正在使用Prism和MVVM開發WPF項目,我使用這個工具。 我一直在創建模塊並測試它,一切正常。爲了在Bootstrapper中測試它,我使用ModuleCatalog的AddModule方法添加每個模塊,但是現在我需要將所有模塊放在一起並從一個模塊移動到另一個模塊。Wpf Prism模塊之間的MVVM更改
程序啓動和加載Module_1,當用戶完成所有在這個模塊中按一個完整的按鈕,程序顯示Module_2等等...
我需要做的後,從一個模塊切換到另一個用戶操作?
預先感謝您。
我正在使用Prism和MVVM開發WPF項目,我使用這個工具。 我一直在創建模塊並測試它,一切正常。爲了在Bootstrapper中測試它,我使用ModuleCatalog的AddModule方法添加每個模塊,但是現在我需要將所有模塊放在一起並從一個模塊移動到另一個模塊。Wpf Prism模塊之間的MVVM更改
程序啓動和加載Module_1,當用戶完成所有在這個模塊中按一個完整的按鈕,程序顯示Module_2等等...
我需要做的後,從一個模塊切換到另一個用戶操作?
預先感謝您。
模塊可以按需加載。在完成第一個模塊的加載之後按下完成按鈕Module_2。 How to: Load Modules on Demand。 在模塊的Initialize()
方法中,您可以註冊所需的區域視圖,例如,
public void Initialize()
{
regionManager.RegisterViewWithRegion("MainRegion",() => container.Resolve<Module2View>());
}
後加載模塊完成導航這一觀點:
moduleManager.LoadModuleCompleted += (s, e) =>
{
if (e.ModuleInfo.ModuleName == "Module_2")
{
regionManager.RequestNavigate("MainRegion", new Uri("Module2View", UriKind.Relative));
}
};
這只是一個快速的樣品。你可以在MSDN找到更多的信息。希望能幫助到你。
另一個選項可以是當用戶點擊完成按鈕一個CompositePresentationEvent將提高到使用由棱鏡
提供的EventAggregator類。 Module_1和Module_2已經訂閱了此事件(可能在其模塊的Initialize方法中),而module_1可以在module_2顯示時隱藏自身。
顯示/隱藏視圖的實際實現將取決於您如何使用區域 - Zabavsky的回答解決了這個問題。
希望有道理!
謝謝你的作品! – estebane97 2012-07-18 23:58:14