在.cs文件里写代码是不是破坏了mvvm模式的结构?

解决方案 »

  1.   

    ....Model,ViewModel也都是.cs文件。你的意思应该是说XAML的CodeBehind吧。如果有洁癖的人,会追求CodeBehind没代码。不过如果只是界面上的一些操作我觉得不算是破坏,毕竟不是所有人都能够只用xaml来做出理想的前台界面效果。我觉得只要不跟ViewModel有耦合基本没啥关系。
      

  2.   

    这个争论还是比较多的.
    个人觉得,尽量做到mvvm,但也不至于那么绝对。
      

  3.   

    想动态产生就写到cs文件中,想可视化查看就放xaml里面,事件处理逻辑只能放在cs文件中。
      

  4.   

    感觉从教科书式的意义上说View部分(就是XAML的Code Behind)不应该写代码(其实的确不应该有任何除了构造初始化之外代码)。
    但在ViewModel里是大量代码用于桥接View和Model。(MVVM写UI的关键技巧就在于善用XAML和写对应的ViewModel逻辑了)
    而Model里则是(但通常比ViewModel少些)数据模型。
    MVVM的缺点之一是用了以后就要基本坚持用下去了,另外ViewModel会比较复杂(让人感觉有点烦)。但个人感觉MVVM对于小型和中型的应用程序都很合适,但是应用程序过于复杂就可能会有点问题(这是MVVM的发明人说的)。
      

  5.   

    怎么才算和viewmodel没有耦合啊?
      

  6.   

    怎么才算和viewmodel没有耦合啊?
    简单的说就是你前台XAML跟CodeBehind上改下东西不会影响到ViewModel也要修改.
      

  7.   

    是的没有严格限制。View中XAML和cs实际是一体的(理论上讲XAML是cs的子集),所以理论上还是有些事情可能XAML处理不了,或者使用中感觉用XAML表述不够灵活的地方。但原则是像楼上说的,不能影响到ViewModel,最基本原则之一就是View中的逻辑不应该触及到Model(数据相关)这些事应该交给ViewModel通过数据绑定去做,这些逻辑的行为也不应该影响数据最好也不依赖于数据,否则就麻烦了。