我是WPF和Prism中的新成員。我想知道是否應該爲每個新窗口創建新的引導程序?例如,我有「Window1」,我從ListBox中選擇元素,然後單擊按鈕「ShowDetails」,在新窗口「Window2」中,我應該看到我選擇的細節。我有他們的窗口和模塊,但我想知道如何以及在哪裏可以爲「Window2」註冊模塊「Module2」?我應該爲每個WPF窗口創建單獨的Bootstrapper嗎?
我的引導程序示例。
class Bootstrapper : UnityBootstrapper
{
protected override DependencyObject CreateShell()
{
var mainWindow = new Window1();
mainWindow.Show();
return mainWindow;
}
protected override IModuleCatalog GetModuleCatalog()
{
var moduleCatalog = new ModuleCatalog();
moduleCatalog.AddModule(typeof(Module1));
return moduleCatalog;
}
}
"App.xaml.cs"
public partial class App : Application
{
public App()
{
var bootstrapper = new Bootstrapper();
bootstrapper.Run();
}
}
引導程序是一個一體化的單人展示......理論上應該只在應用程序中存在一個引導程序。如果你有'moduleCatalog.AddModule(typeof(Module1));',模塊2還應該有一行 – KyorCode
但是wpf如何知道Module2是爲Window2註冊的? 在Window1中我有「Region1」,在Window2中有「Region2」。 當我嘗試在引導程序中註冊Module2時,出現錯誤「區域管理器不包含Region2區域。」 – Sanya530
我可以建議你開始使用Caliburn.Micro,它比PRISM更容易,而且註冊的東西更少。 - 爲了進一步幫助您,並且就我的PRISM知識而言,您應該在RegionManager中註冊您的Region2 – KyorCode