1

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

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

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

因此,我将确定以下需要处理的数据:

  • 用户名的字符串
  • 密码字符串
  • 用于ObservableCollection<Project>项目列表
  • Project表示活动项目的对象
  • Aboolean是否登录到项目

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

4

1 回答 1

6

这个问题没有正确或错误的答案

将视图、视图模型和模型视为截断点。它们允许您将应用程序模块化,而不是采用不可重用的整体方法。

一般来说,ViewModels 与 Views 的比例是 1:M,但现实情况是大多数时候它们是 1:1 的关系。ViewModel 和 View 是大部分工作所在的地方,Model 只不过是实现INotifyPropertyChanged绑定需求的 POCO。

在您的示例中,我将根据需要使用由单个 ViewModel 和多个模型(项目、UserCredentials 等)支持的单个视图。您可能拥有执行实际登录工作的服务,但是您可以在 ViewModel 中执行该工作。

于 2013-01-25T20:30:44.227 回答