在 MVVM 中为什么人们要创建 ViewModel 文件夹?

问题描述 投票:0回答:5

...而不是使用 xxx.xaml.cs 生成的文件?

开发人员正在 Views 文件夹中的 xaml 中创建一个视图。 Visual Studio 在 xaml 文件下生成 xaml.cs 文件。但开发人员更喜欢创建一个新文件夹 ViewModel,并为每个 xxx xaml 文件创建一个 xxxViewModel.cs 文件。为什么不把这些ViewModel的内容全部移到xxx.xaml.cs文件中呢?

c# .net mvvm
5个回答
3
投票

因为xaml.cs它与xaml(视图)紧密耦合,这违背了模式设计。

请查看此链接,它很好地解释了该模式:https://web.archive.org/web/20230128072239/http://reedcopsey.com/2010/01/06/better-user-and-开发人员体验从 windows-forms 到 wpf-with-mvvm-part-7-mvvm/ :

视图模型

  • ViewModel 对 View 一无所知
  • ViewModel 直接与 Model 交互,以便公开它进行数据绑定
  • ViewModel 管理特定于应用程序的信息

2
投票

有些人甚至喜欢将 ViewModel 直接嵌套在

xaml
文件下,比如 enter image description here

这可以通过使用此自定义 Visual Studio 扩展来完成:NestIn


1
投票

这种拆分在表示逻辑(用户界面的行为方式)和渲染(用户界面的外观)之间提供了清晰的“关注点分离”。它将所有逻辑放入可以进行“单元测试”的层中,并将所有标记放入图形设计师可以工作的层中,而不必担心太容易破坏东西。 他们正在创建文件夹,因为关键的 MVVM 示例(由 Josh Smith 和 Laurent Bugnion 编写)展示了这种方法。


0
投票
为什么不把xxx.xaml.cs文件中这些ViewModel的内容全部移走呢?

因为这是错误的。 xxx.xaml.cs 是“代码隐藏”,它是 UI 的一部分。 MVVM 的思想是将 UI 与视图模型分离。 UI 不应该知道它显示的逻辑的任何细节。

因为用单元测试来测试类更容易。那么没有任何东西与视图绑定。


-1
投票

© www.soinside.com 2019 - 2024. All rights reserved.