每个模块的菜单项,模块内容使用Prism或MEF动态加载

时间:2011-01-12 18:01:47

标签: wpf mvvm navigation prism mef

我正在开发目前使用Prism和MEF的应用程序。

我最好生成一个包含每个模块项目的工具栏或菜单,当单击一个项目时,只有该模块中声明的视图才会加载到选项卡控件中。

例如:

菜单区域: ModuleA(已选定)| ModuleB

标签区域: ModuleAViewA | ModuleAViewB | ModuleAViewC

改为 菜单区域: 员工|库存(选择)的

标签区域: 项目|在Fi

1 个答案:

答案 0 :(得分:11)

这里有很多类似的问题。通常,您将采用的方法是在模块可以引用的基础结构DLL中定义服务。您的模块将通过服务添加菜单/工具栏/功能区项目/任何对象。服务的实现取决于您 - 它可以位于Shell项目,基础结构或单独的模块中。显然,如果它在一个单独的模块中,你必须确保你的其他模块将它定义为依赖。

您可能需要查看以下内容:

这个链接指向展示动态菜单的项目: Looking for Prism example of Modules loading themselves into a menu

我在其中询问有关如何构建动态菜单的问题: How to dynamically add MenuItems (with a header) to a WPF menu

更多.... Load Module Default Views In Region to Create Menu

还有更多! Menu service in Prism application CAL

你可以找到更多这样的东西。这是一个相当普遍的要求;我相信你可以从那里的代码示例中找到一个好方法。