是什么让MVVM特别适合WPF?

Ree*_*sey 9 .net wpf design-patterns mvvm

模型-视图-视图模型是非常受欢迎的WPF和Silverlight.我一直在使用这个用于我最近的项目,并且是一个非常大的粉丝.

我知道这是对MVP的改进.但是,我想知道WPF(和Silverlight)的哪些独特特性允许MVVM工作,并且使用其他框架或技术来防止(或至少使这个模式变得困难).

我知道MVVM强烈依赖于WPF中强大的数据绑定技术.这是许多文章和博客似乎提到的一个功能,它是WPF提供View与ViewModel强大分离的手段的关键.但是,数据绑定在其他UI框架中以多种形式存在.甚至还有像Truss这样的项目,它们为.NET中的POCO提供WPF风格的数据绑定.

除了数据绑定之外,哪些功能使WPF和Silverlight非常适合Model-View-ViewModel?

Car*_*rlo 7

DataBinding,命令,控件模板和XAML.

如果没有其中之一,MVVM将变得更加困难,即使不是不可能的.以ASP.net为例,它有ASPX部分(为了示例相当于XAML),它具有数据绑定,但它没有命令或控制模板,因此MVVM不可能存在.在WinForms中,我们有数据绑定,这就是它,所以也不可能.