这个问题也发布在Prism 的 Codeplex 网站上。
我对按需加载模块有点迷茫,希望你们能不吝赐教。我正在使用v2 #7。
这是我想要完成的事情:
1) 我有 2 个区域 - 一个用于实例化模块的按钮 (MenuRegion),另一个用于显示模块 (MainRegion)。在 MenuRegion 中一次只能看到一个模块。
2) 模块位于目录中
3) MenuModule 模块与 MenuRegion 相关联,用于创建显示模块名称的按钮。当单击其中一个按钮时,相应的模块将被加载并显示在 MainRegion 中。
4) 行为:
a) 单击 ModuleA 按钮并显示 ModuleA。用户在 ModuleA 中输入数据,数据处于未保存状态。
b) 单击 ModuleB 按钮并显示 ModuleB。用户在 ModuleB 中输入数据,数据处于未保存状态。
c) 单击 ModuleA 按钮,ModuleA 将显示先前输入的信息。
如果我的假设有误,请纠正我,并请给我其他建议:
1) MainRegion 应该是一个 ContentControl,因此一次只能看到一个模块。
2)我想我需要枚举我的目录的“GrouplessModules”来获取目录中可用模块的 ModuleInfo
3)要加载模块,我认为我需要调用 myModuleManager.LoadModule(moduleName)
最后,我的问题:
1) 我应该在 MenuModuleView 的构造函数中将 moduleManager 作为参数吗?
2) 我如何获取从 MenuModuleView 内部访问的目录,以便枚举可用模块?
3) 在MenuModuleView 中,当我枚举模块时,我创建了按钮,将ModuleInfo 分配给按钮的Tag 属性。这样,我只有一个点击事件来加载模块。它是否正确?对我来说,它闻起来有点变通...
非常感谢你的帮助!!!