如何将视图拆分为m-v-vm中的模块

时间:2009-07-30 13:14:30

标签: wpf mvvm

我想将我的观点项目分成几个模块。 我想有一个主项目,它将引用所有模块,这个主项目将从模块生成视图。

我的问题是如何将应用程序中的所有样式绑定到其他模块?

会自动识别它们吗?

视图模型模板将如何定位?因为现在他们在我在app.xaml

中合并的资源字典中

我把shpuld放在哪里(我希望它们在他们的模块项目中), 我怎样才能加载这些资源?

2 个答案:

答案 0 :(得分:2)

好的问题。正如Anderson Imes所说,你可以使用Composite WPF,但是如果你使用Managed Extensibility Framework(MEF),还有另一个更简单的选项。有another question I asked关于如何使用MEF完全正在谈论的内容。基本上它使用MEF的可扩展性功能来使应用程序资源可扩展,然后您的模块使用其DataTemplates(视图)“扩展”应用程序资源。然后,只需将ViewModel添加到GUI中,WPF就可以将View应用到它。我一直在这个模型上构建一个应用程序,它运行得很好。

使用此方法的好处是,您的app.xaml文件不必“了解”所有View模块,您可以随意切片和切块您的应用程序(我更喜欢细分)按功能,然后按层)。

答案 1 :(得分:1)

如果使用Prism,您可以轻松实现所需: http://www.codeplex.com/CompositeWPF

有很多样本可以让你从那里开始。

你要问的唯一问题是Prism没有回答的是ResourceDictionaries,但有几种方法可以解决这个问题,但我认为这是最好的方法:Composite WPF (Prism) module resource data templates

第一个答案应该让你到那儿。您将在模块中失去一点设计时支持,但所有内容都应该在运行时以正确的方式组合在一起。

相关问题