【发布时间】:2011-06-24 06:48:57
【问题描述】:
我正在使用什么:
- Visual Studio 2010
- Microsoft .NET Framework 4
- 棱镜 v4
我想弄清楚的是如何在保持 MVVM 模式的同时开始使用 Prism + MEF。当我进入 Prism Quickstarts 时,它有一个 Prism + MEF,但是项目中的 cmets 明确指出 Quickstart 示例没有实现 MVVM。我不确定要混合/匹配什么,以便我的 shell 本身遵循 MVVM(和区域)。
基本上,我想使用 MEF 能够在运行时加载程序集(模块)。而且,我想在我的 Shell 中设置区域并让 Shell 使用 MVVM(这样我就可以将数据绑定到 Shell)。网上的每个示例都是 Prism、Prism + MVVM、Prism + Unity、Silverlight 示例、Prism + MEF 等。但我找不到任何 WPF Prism + MEF + MVVM 示例或信息。我真的不知道如何设置我的引导程序等等。
一旦这部分完成,我肯定会弄清楚如何使用 MVVM 将其他控件加载到我的 shell 中。任何帮助都会很棒,尤其是直接处理这种情况的资源,与类似的东西相对(即 Prism + Unity 和没有 MEF)。谢谢!
【问题讨论】:
-
我想你会在这里找到你需要的一切来帮助你开始:Developer's Guide to Microsoft Prism
-
你找到MEF+Prism+MVVM的例子了吗?我也找不到,一个例子值一千个帮助文件链接。
-
@JohnC:嗯,Prism 开发人员指南很有帮助,但是没有,我没有找到任何 Prism + MEF + MVVM 的具体示例。不过,单独查看每个组件会更有意义。 Prism 是一个提供实用程序和类的框架,可帮助您编写 MVVM 应用程序。 MEF 是一个插件框架。 Prism 和 MEF 之所以能够交织在一起,是因为 Prism 是可扩展的。我还没有弄清楚如何处理区域(使用 MEF),但我发现 AggregateCatalog 是 Prism + MEF 的核心和灵魂。
-
@JohnC:MVVM 是一种设计风格,它自然与 Prism 相得益彰。问题是 Prism 提供了很多工具来帮助处理特殊的 MVVM 情况(例如,它提供了 DelagateCommand 并提供了有关如何创建 CompositeCommand 的示例)。它提供区域(我还没有完全弄清楚)。它提供了诸如 NotificationObject 等类。我确实找到了使用 MEF 将我的 ViewModel 导入我的视图并将我的视图导出到我的引导程序的方法。那里有很多来源,但不是一个大示例,而是我拼凑的许多小示例。
标签: wpf mvvm module mef prism-4