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

时间:2013-01-25 20:20:11

标签: c# wpf mvvm

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

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

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

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

  • 用户名
  • 的字符串
  • 密码
  • 的字符串
  • 项目列表的ObservableCollection<Project>
  • 表示活动项目的Project对象
  • 如果已登录项目,则为boolean

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

2 个答案:

答案 0 :(得分:6)

对此

没有正确或错误的答案

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

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

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

答案 1 :(得分:3)

在纯MVVM impelmentation中,每个视图都应该有一个viewModel。在现实生活中,它可能会有点不同......

查看PRISM Modular Application Development中的关键决定。

此外,This文章解释得非常好

祝你好运