...而不是使用 xxx.xaml.cs 生成的文件?
开发人员正在 Views 文件夹中的 xaml 中创建一个视图。Visual Studio 在 xaml 文件下生成 xaml.cs 文件。但开发人员更喜欢创建一个新文件夹 ViewModel 并为每个 xxx xaml 文件创建一个 xxxViewModel.cs 文件。为什么不把这些 ViewModel 的所有内容都移到 xxx.xaml.cs 文件中呢?
因为 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 管理特定于应用程序的信息
有些人甚至喜欢将 ViewModel 直接嵌套在xaml
文件下面,比如
这可以通过使用此自定义 Visual Studio 扩展来完成:NestIn
他们正在创建文件夹,因为关键的 MVVM 示例(由 Josh Smith 和 Laurent Bugnion 编写)展示了这种方法。
为什么不把这些 ViewModel 的所有内容都移到 xxx.xaml.cs 文件中呢?
因为它是错误的。xxx.xaml.cs 是“代码隐藏”,它是 UI 的一部分。MVVM 的思想是将 UI 与视图模型分离。UI 不应该知道它显示的逻辑的任何细节。
因为使用单元测试更容易测试类。那时没有任何东西与视图绑定。