wpf - 多个 View 之间的通用模型

标签 wpf mvvm

WPF的新手。我有一个L2S实体Product模型。我正在WPF中创建一个应用程序来编辑产品信息,以潜在地替换我拥有的旧Windows窗体应用程序。该应用程序具有一个标签控件,上面带有许多标签,例如“包装”,“市场营销”,“照片”,“构造”等。

我的问题是如何在MVVM系统中构建该结构。我是否对每个选项卡都有单独的 View ,每个选项卡都具有与Product模型的特定子集相关的自己的 View 模型?还是我有一个带有选项卡控件和所有字段的单一 View ,以及一个单一 View 模型来包含整个模型?还是我要完全错了?

我觉得第一个选择是要走的路,但是后来我也不确定如何在多个 View 模型之间共享同一模型。谁能为我阐明一下?

- 编辑 -

页面上的数据示例:
市场营销具有多个文本字段,以及一些子集实体集合,例如功能,应用程序和交叉引用。
照片处理该产品的照片集
包装和构造分别是与产品中各自信息相关的大量文本字段/组合/复选框的集合

最佳答案

利用您所提供的最少信息,我建议采取以下解决方案:

  • ProductView View
  • 每个选项卡的单独 View
  • 主容器ViewModel:ProductViewModel
  • 对于复杂的选项卡,也需要单独的 View 模型。例如,您将有一个单独的PackagingViewModel,因此ProductViewModel应该公开public PackagingViewModel Packaging属性
  • ProductViewModel应该接受所有与模型相关的东西(也许某些服务,模型实体等),然后初始化所有其他 subview 模型。
  • 关于wpf - 多个 View 之间的通用模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8826628/

    相关文章:

    .net - 扩展器作为 ListView 项目

    wpf - 响应事件时运行命令

    c# - 无法构造和初始化viewModel

    c# - WPF DataGrid/ListView 绑定(bind)到数组 mvvm

    c# - 使用 mvvm 填充 Listview

    .net - 如何将简单的 .net 属性绑定(bind)到标签并使其自动更新

    WPF-如何创建将样式应用于子类型的样式

    c# - 是否可以触发 OnPropertyChanged 事件,而无需在 ViewModel 上的属性 setter 中显式调用它?

    ios - 我可以在没有数据绑定(bind)的情况下使用 MVVM 吗?

    c# - 使用 MVVM 在 UWP 应用程序中导航时通过 shell 传递参数