0

数据层

我有一个Order类作为实体。这个Order实体是我的模型对象。

订单可以是不同的类型,顺其自然

  • 一个

  • C

  • D

此外,Order 类可能具有通用属性,例如名称、创建时间等。

同样根据订单类型,有不同的字段不常见。

查看图层

该视图包含以下内容

  1. 主菜单
  2. 列表显示

主菜单包含下拉菜单按钮,用于根据从下拉菜单中选择的类型创建订单。下拉菜单包含订单类型(A、B、C 和 D)。

根据订单类型有不同的用户控制。例如,如果用户选择创建类型 A 的订单,则会弹出具有不同输入字段的不同视图。

因此,每种订单类型都有四个用户控件。

如果用户从下拉列表中选择 A 选项,则创建类型 A 的订单,反之亦然。

现在下面是包含用户迄今为止创建的订单列表的列表视图。

编辑任何特定订单,用户可以双击列表视图行。根据用户在列表视图中单击的订单类型,该订单类型的视图以编辑模式打开。例如,如果用户从列表视图中选择订单类型 A,则在编辑模式下打开订单类型 A 的视图。

请在上面讨论的场景中为视图模型建议一个交互模型。

如果查询非常基本,请原谅,因为我是 MVVM 和 WPF 的新手。

4

2 回答 2

0

您的主要问题是如何为所选订单类型创建正确的视图?即下拉或 ListView 如何触发正确的订单视图来显示。

如果这就是你所得到的,那么你会想要这样的东西:当用户点击订单列表时(例如),你需要更改一些底层的 ObservableCollection 并发送某种通知或强制它在某种 Workspace 对象上做某事。理解这一点的最佳方法可能是查看 Josh Smith 的MvvmDemoApp以及他的文章(如果您尚未阅读它)。从那里开始,他实现 WorkspaceViewModel 的方式为零,因为我认为这可能是这种方法,或者类似的方法,您追求的是您的 Order 视图用户控件。(如果我理解正确的话)。

于 2010-03-14T11:15:35.803 回答
0

我不会给你一个具体的设计,而是建议一种不同的方式来看待这个问题。

制作你的 xaml。现在,如果它可以以任何方式组织数据并公开它想要的任何方法集,那会是什么样子?想象这一点时,甚至不要考虑实体的真实结构。更多的遗产?较少的?由您决定 - 最适合您的 View。

好的,你刚才描述的就是你的 ViewModel。为此编写公共 API。然后,将其连接到实际的底层实体。

于 2010-03-14T10:32:18.120 回答