2010-03-14 81 views
0

数据层请建议在主题

讨论的简单场景MVVM设计(视图模型的相互作用的模型)我有一个订单类作为一个实体。这个订单实体是我的模型对象。

订单可以是不同类型,让它成为

  • Ç

  • d

也订单类可能具有共同的属性,如名称,创建时间等。

也基于订单类型有不同的字段是不常见的。

视图层

的视图包含以下

  1. 主菜单
  2. 的ListView

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

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

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

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

下面是包含到目前为止由用户创建的订单列表的列表视图。

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

请在上述场景中为视图模型建议交互模型。

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

+0

你打算在哪里设置“编辑模式”?到目前为止,您只能描述一个ListView ... – Schneider 2010-03-14 08:38:01

回答

0

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

让你的xaml。现在,如果它能够以任何方式组织以任何方式公开任何方法的数据,那会是什么样子?想象这些时,甚至不要考虑实体的真实结构。更多继承?减?由你决定 - 对你的视图最好。

好的,无论你刚刚描述的是你的ViewModel。为此写入公共API。然后,将它连接到实际的底层实体。

0

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

如果这就是你所得到的,那么你会想要这样的事情:当用户点击Orders列表(例如)时,你需要改变一些基础的ObservableCollection并发送一些通知或迫使它在某种Workspace对象上执行某些操作。如果你还没有阅读,可能最好的方法是看Josh Smith的MvvmDemoApp以及他的article。从那里他实现了WorkspaceViewModel的方式,因为我认为这可能是方法,或类似的东西,你是在你的订单视图用户控件之后。 (如果我已经正确理解你的话)。