【发布时间】:2012-10-16 15:28:45
【问题描述】:
在 MVVM 实现中,每个 ViewModel 是否仅与一个 Model 耦合?
我正在尝试在项目中实现 MVVM 模式,但我发现有时,View 可能需要来自多个Models 的信息。
例如,对于UserProfileView,其UserProfileViewModel 可能需要来自UserAccountModel、UserProfileSettingsModel、UserPostsDataModel 等的信息。
但是,在我阅读的大多数关于 MVVM 的文章中,ViewModel 仅包含一个通过依赖注入的模型。所以构造函数只接受一个模型。
ViewModel 必须从多个Models 获取信息时如何工作?或者在 MVVM 中会不会出现这种情况?
PS:我没有使用 Prism 或 Unity 框架。我正在尝试将类似的模式实施到我正在从事的不使用 Prism 或 Unity 的项目中。这就是为什么我需要确切地了解其中一些是如何工作的。
【问题讨论】:
-
是什么让您认为 ViewModel 不能绑定到不同的数据源?
-
视图通过依赖注入仅包含在一个模型上。所以构造函数只接受一个模型。
-
请重读我的评论:是什么让您认为 ViewModel(不是视图)不能绑定到不同的其他模型(不是 ViewModels)
-
是的,我指的是 ViewModel,而不是 View。错字。很抱歉。
-
ViewModel 是 View 的 Model,所以只和 View 直接相关。不要试图遵守规则,模式和实践中没有严格的规则。
标签: c# design-patterns mvvm