1

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

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

4

5 回答 5

3

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

请查看此链接,它很好地解释了该模式:http ://reedcopsey.com/2010/01/06/better-user-and-developer-experiences-from-windows-forms-to-wpf-with- mvvm-part-7-mvvm/

视图模型

  • ViewModel 对 View 一无所知
  • ViewModel 直接与 Model 交互,以便将其公开以进行数据绑定
  • ViewModel 管理特定于应用程序的信息
于 2012-07-19T09:13:22.193 回答
2

有些人甚至喜欢将 ViewModel 直接嵌套在xaml文件下面,比如 在此处输入图像描述

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

于 2013-06-26T15:07:17.237 回答
1

这种拆分在表示逻辑(用户界面的行为方式)和渲染(用户界面的外观)之间提供了清晰的关注点分离。它将所有逻辑放在一个可以进行单元测试的层中,并将所有标记放在一个图形设计师可以工作而不必担心太容易破坏事物的层中。

于 2014-08-25T22:11:03.040 回答
0

他们正在创建文件夹,因为关键的 MVVM 示例(由 Josh Smith 和 Laurent Bugnion 编写)展示了这种方法。

为什么不把这些 ViewModel 的所有内容都移到 xxx.xaml.cs 文件中呢?

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

于 2012-07-19T09:16:22.067 回答
-1

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

于 2012-07-19T09:16:34.367 回答