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

微软的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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值