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

时间:2012-07-19 09:11:34

标签: c# .net mvvm

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

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

5 个答案:

答案 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文件下,例如 enter image description here

可以使用此自定义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)

因为使用单元测试更容易测试类。那么观点就没有任何约束力了。