C# 我需要多少视图、视图模型和模型?

C# 我需要多少视图、视图模型和模型?,c#,wpf,mvvm,C#,Wpf,Mvvm,我正在尝试使用MVVM模式开发一个WPF应用程序——实际上它更像是一个工具。我读了几篇文章,看了视频,发了一些问题,但不知怎么的,我觉得我对MVVM的理解和理解是不对的 我将从UI开始。在第一阶段,用户界面应显示以下内容: 分组框与 用户名的文本框 密码文本框让我们忽略开始时的密码框 分组框与 将从Web服务检索此用户可用的项目名称列表的组合框 用于登录到所选项目的按钮登录 用于从当前项目注销的按钮注销 因此,我将确定需要处理的以下数据: 用户名的字符串 密码的字符串 项目列表的可观察集合 表示

我正在尝试使用MVVM模式开发一个WPF应用程序——实际上它更像是一个工具。我读了几篇文章,看了视频,发了一些问题,但不知怎么的,我觉得我对MVVM的理解和理解是不对的

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

分组框与 用户名的文本框 密码文本框让我们忽略开始时的密码框 分组框与 将从Web服务检索此用户可用的项目名称列表的组合框 用于登录到所选项目的按钮登录 用于从当前项目注销的按钮注销 因此,我将确定需要处理的以下数据:

用户名的字符串 密码的字符串 项目列表的可观察集合 表示活动项目的项目对象 是否登录到项目的布尔值
我的担心是,我不知道应该如何构造或设计下面的MVVM。我应该在这里使用多少视图、视图模型和模型?当然,应用程序会增长,但不会增长这么多。让我们坚持以上观点。

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

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

通常,视图模型与视图的比例为1:M,但实际情况是,大多数情况下,它们是1:1关系。ViewModel和View是大部分工作所在的位置,模型只不过是一个POCO,它实现了INotifyPropertyChanged以满足绑定需求


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

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

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

通常,视图模型与视图的比例为1:M,但实际情况是,大多数情况下,它们是1:1关系。ViewModel和View是大部分工作所在的位置,模型只不过是一个POCO,它实现了INotifyPropertyChanged以满足绑定需求


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

所有这些工作都可以在单个VM中完成。你也可以有一个用于登录,另一个用于其他东西,但我认为在这一点上没有必要。关于模型,您至少需要Project类,这样您就可以从服务器上获取它。你也可以有一个用于登录,另一个用于其他东西,但我认为在这一点上没有必要。关于模型,您至少需要Project类,这样您就可以从服务器上获取它。+1,因为我100%同意您的意见。然而,DDD的捍卫者会告诉你,拥有一个只包含属性而没有行为的模型会导致他们所谓的贫血域模型,不管这意味着什么。然而,DDD的捍卫者会告诉你,拥有一个只包含属性而没有行为的模型会导致他们所谓的贫血域模型,不管这意味着什么。