我需要多少视图,视图模型和模型?

Rob*_*uch 1 c# wpf mvvm

我正在尝试使用MVVM模式开发一个WPF应用程序 - 实际上它更像是一个工具.我已经阅读了几篇文章,观看了视频,发布了一些问题,但不知怎的,我觉得我对这个MVVM事物的理解或理解不是"正确的".

我将从UI开始.在第一阶段,UI将显示以下内容:

  • 组合框
    • 用户名的文本框
    • 密码的文本框(让我们忽略PasswordBox开始)
  • 组合框
    • 用于此用户可用的项目名称列表的组合框(将从Web服务检索)
    • 用于登录所选项目的"登录"按钮
    • 用于从当前项目注销的"注销"按钮

所以我会确定需要处理的以下数据:

  • 用户名的字符串
  • 密码的字符串
  • 一个ObservableCollection<Project>项目列表
  • 一个Project代表活动项目对象
  • boolean,如果登录到一个项目或不

我担心,我不知道我应该如何在MVVM之后构建或设计这个.我应该在这里使用多少视图,视图模型和模型?当然,应用程序会增长,但不会那么多.让我们坚持以上.

Aar*_*ver 6

对此没有正确或错误的答案

将Views,ViewModel和Models视为截止点.它们允许您模块化您的应用程序,而不是采用不可重用的单片方法.

一般来说,ViewModels to Views是1:M然而现实是大多数时候它们是1:1的关系.ViewModel和View是大量工作所在的地方,模型只是一个实现INotifyPropertyChanged绑定需求的POCO .

在您的示例中,我将使用由单个ViewModel支持的单个View,并根据需要使用多个模型(Project,UserCredentials等...).您可能拥有执行实际登录工作的服务,但您可以在ViewModel中执行该工作.

  • +1因为我同意100%与你同意.然而,DDD的捍卫者会告诉你,拥有一个只包含属性而没有行为的模型会导致他们称之为"贫血领域模型",无论这意味着什么. (2认同)