[WPF初学]基于WPF框架的MVVM模式简介

来源:互联网 发布:js修改微信分享的内容 编辑:程序博客网 时间:2024/06/05 02:21
微软的WPF带来了新的技术体验,如Sliverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性揉合进去,以应对客户日益复杂的需求变化。

WPF的数据绑定与Presentation Model相结合是非常好的做法,使得开发人员可以将View和逻辑分离出来,但这种数据绑定技术非常简单实用,也是WPF所特有的,所以我们又称之为Model-View-ViewModel(MVVM)。而基于PresentationModel的MVP和基于ViewModel的MVVM形式上一个主要区别在于:
  1. 前者的PresentationModel里一般要注入一个IView实例,当然目的是解耦,但也给人留下一个余地,也就是说在没有更好办法做binding的时候,可以调用IView直接操作界面来做事,当然是比较灵活的,而且基于接口依赖的UI与业务逻辑的分离也是不错的,但这需要维护View和PresentationModel之间的双向引用,而且代码(尤其是View的代码)看起来就不那么简洁了,因为即使是依赖于接口,也是依赖,总不如没有依赖要好;
  2. 而后者(MVVM)的一个主要特征是:完全通过binding机制,由ViewModel指示UI如何做变更,同时用户与ViewModel的交互通过Command来实现,这样只需要View指导ViewModel即可,而ViewModel完全不必关心View暴露出什么样的接口和操作,它只需要提供属性(要绑定的数据和Command)并实现INotifyPropertyChanged即可,少了一个方向的依赖,代码自然更简洁清晰。

[WPF初学]基于WPF框架的MVVM模式简介 - lvan - lvan GoGo 的世界




[WPF初学]基于WPF框架的MVVM模式简介 - lvan - lvan GoGo 的世界 
注:内容来自于网络。
http://blog.163.com/lvan100@yeah/blog/static/681172142011111855923151/?suggestedreading&wumii
0 0
原创粉丝点击