我試圖實現模塊化並且有一些複雜性。我實現了一個名爲ModuleA的模塊,它在初始化函數中顯示了新的childWindow;棱鏡模塊化重載機制
public ModuleA()
{
personViewModel = new PersonViewModel();
detail = new ViewDetail(personViewModel);
}
public void Initialize()
{
detail.Show();
}
我的問題是,我不能再顯示視圖,因爲重新加載函數的機會丟失。我的模塊按需加載,我的意思是我想在用戶單擊按鈕時加載模塊,因此我沒有機會在開始時加載模塊,並從其自己的事件控制其功能。然後我試圖從我的應用程序中展示視圖;
private void ButtonModelA_Click(object sender, RoutedEventArgs e)
{
this.moduleManager.LoadModule(MyBootstrapper.ModuleAName);
ChildWindow detail = new ModuleA.ViewDetail(new ModuleA.ViewModel.PersonViewModel());
detail.Show();
}
這樣,加載模塊變得不必要了。
有沒有一種方法可以根據需要從其中加載模塊並多次顯示其視圖?
我明白你的意思,我也檢查了股票交易實施。但是,在這個實現模塊中,當可用模塊被加載並且模塊的視圖之一被註冊到主視圖時。即使我使用區域,我需要在入口處註冊我的視圖,其中包含在模塊旁邊的初始化方法,因爲此方法調用一次。 – slatch 2011-05-23 09:17:40
在我的場景中,我在主視圖頂部有按鈕,這些按鈕不是模塊的一部分。當我點擊按鈕時,我想要加載模塊並顯示視圖。直到這裏沒有問題。但是,當我再次單擊按鈕時,我無法再顯示我的視圖,因爲初始化方法調用了一次。我需要按需加載模塊並多次進入其內部。 – slatch 2011-05-23 09:17:50
您不必多次初始化您的模塊,因爲它們已經被初始化。你只需要多次添加你的視圖到一個區域。 – PVitt 2011-05-23 09:20:44