【发布时间】:2009-08-12 01:23:34
【问题描述】:
我对 mvvm 还很陌生,我有几个问题:
模型=业务层吗?
如果我有一个包含订单列表和一个或多个订单的客户模型,每个订单都包含项目列表,您将如何在视图中将其分开?目前,我的 CustomerModel 有一个 CustomerViewModel。 CustomerViewModel 包含 OrderViewModel 列表。 OrderViewModel 包含 ItemsViewModel 的列表。因此,例如,如果我从数据层检索现有客户,我将根据现有列表创建适当的 OrderViewModel 和 ItemViewModel。这就是你通常实现 mvvm 的方式吗?老实说,整个“重新包装对象”感觉不太对。
我的客户视图包含订单和项目列表,每个都由其自己的用户控件表示并使用 ItemsControl 重复。每个项目都有自己的添加、编辑和删除按钮。我想要某种模式对话框,当用户以适当的形式呈现时,它会禁用当前选项卡(而不是整个应用程序)。我找到的最简单的解决方案是创建一个内容控件,该控件具有一个控件 dp(名为 Control),您可以设置该控件并在 isVisible = true 时自动创建矩形覆盖。然后控件绑定到 CustomerViewModel 的 dialogControl 属性...。我不认为这是一个合适的 mvvm 解决方案,因为我似乎在混淆视图模型和视图。我认为更合适的方法是在 customerviewmodel 中有一个 viewmodel 代表对话框包含的内容并在每个 viewmodel 中为它提供一个模板....但我似乎无法想出一种方法来实现矩形覆盖这个解决方案。
谢谢!
【问题讨论】:
标签: mvvm