...使用xxx.xaml.cs生成的文件?
开发人员正在Views文件夹中的xaml中创建一个View。 Visual Studio在xaml文件下生成xaml.cs文件。但开发人员更喜欢创建一个新的文件夹ViewModel,并为每个xxx xaml文件创建一个xxxViewModel.cs文件。为什么不在xxx.xaml.cs文件中移动这些ViewModel的所有内容?
答案 0 :(得分: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
- ViewModel对View
一无所知- ViewModel直接与Model交互,以便公开它以进行数据绑定
- ViewModel管理特定于应用程序的信息
答案 1 :(得分:2)
有些人甚至喜欢将ViewModel直接嵌套在xaml
文件下,例如
可以使用此自定义Visual Studio扩展程序来完成此操作:NestIn
答案 2 :(得分:1)
此分割在表示逻辑(用户界面的行为方式)和呈现(用户界面外观)之间提供了清晰的seperation of concerns。它将所有逻辑放入一个可以unit tested的层中,并将所有标记放在一个图形设计者可以工作的层中,而不必担心容易破坏。
答案 3 :(得分:0)
他们正在创建文件夹,因为关键的MVVM示例(由Josh Smith和Laurent Bugnion提供)显示了这种方法。
为什么不在xxx.xaml.cs文件中移动这些ViewModel的所有内容?
因为这是错的。 xxx.xaml.cs是一个“代码隐藏”,它是UI的一部分。 MVVM的想法是将UI与视图模型分开。 UI不应该知道它显示的逻辑的任何细节。
答案 4 :(得分:-1)
因为使用单元测试更容易测试类。那么观点就没有任何约束力了。