多个视图中的通用模型

时间:2012-01-11 21:06:55

标签: wpf mvvm

WPF新手。我有一个Product模型,它是一个L2S实体。我正在WPF中创建一个应用程序来编辑产品信息,以便可能替换我拥有的旧Windows窗体应用程序。应用程序有一个选项卡控件,其上有许多选项卡,例如打包,市场营销,照片,构造等。

我的问题是如何在MVVM系统中构建它。我是否为每个标签都有一个单独的视图,每个标签都有自己的视图模型,与Product模型的特定子集相关?或者我是否有一个带有选项卡控件的视图,所有字段和单个视图模型都包含整个模型?还是我完全错了?

我觉得第一个选择是要走的路,但后来我也不确定如何在多个视图模型中共享相同的模型。任何人都可以为我阐明这一点吗?

- 编辑 -

页面上的数据示例: Marketing有几个文本字段,以及一些子集实体集合,如功能,应用程序和交叉引用。 照片处理产品的照片集 包装和构造都是与产品

中各自信息相关的大量文本字段/组合/复选框

1 个答案:

答案 0 :(得分:2)

根据您提供的最少信息,我建议您使用以下解决方案:

  1. 主要ProductView视图
  2. 每个标签的单独视图
  3. 主容器ViewModel:ProductViewModel
  4. 对于复杂的标签,也可以单独查看模型。例如,您将有一个单独的PackagingViewModel,因此ProductViewModel应公开public PackagingViewModel Packaging属性
  5. ProductViewModel应该接受所有与模型相关的东西(可能是某些服务,模型实体等),然后初始化所有其他子视图模型。