我试图实现模块化并且有一些复杂性。我实现了一个名为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