一张图搞懂什么是MVVM
什么是 MVVM:它是一个 MVC 的增强版,正式连接了视图和控制器,并将表示逻辑从 Controller 移出放到一个新的对象里,即 View Model。MVVM 听起来很复杂,但它本质上就是一个精心优化的 MVC 架构。(@译者朱宏旭语)
MVVM是Model-View-ViewModel的缩写形式,通常被用于WPF或Silverlight开发。
采用双向绑定(data-binding)模式:View的变动,自动反映在 ViewModel,反之亦然。View和Model之间不发生通信。Angular 和 Ember 都采用这种模式。
这篇文章讲得非常清晰,墙裂推荐 关于MVC、MVP和MVVM的区别
MVVM设计模式的优势是什么?
- 视图的cs文件包含极少的代码,其核心逻辑都被放在View Model类中,从而使得程序逻辑与视图耦合度降低
- ViewModel类作为View的DataContext
- 在MVVM下,所有的事件和动作都被当成命令,如按钮的点击操作,此时不是触发点击事件,而是绑定到一个点击命令,再由命令去执行对应的逻辑
MVVM库
DevExpress WPF专门提供了一个可以构建完整MVVM应用程序的库。DevExpress MVVM库的优势就是它既可以独立使用,也可以和第三方MVVM库结合使用。
- 运用POCO(Plain Old CLR Objects)获取清晰的没有重复的ViewModel代码。POCO机制自动生成可绑定的属性、命令等等
- EventToCommand包括转换时间参数,通过Dispatcher调用绑定命令以及处理相关事件。
- View Model中的高级视图控件可以预定义Services或者自定义Services。
- Messenger 降低了构建松散耦合应用程序架构的难度。
- 构建任何视觉组件缺失的功能,并将它运用于任何需要的地方。
- 轻松应对大多数你可能会遇到的数值转换场景。
传统型和扩展型MVVM API
-
Traditional API:所有data-aware控件提供可以绑定ViewModels项目源的属性,指定选中项和数据模板。所有
list-bound控件 (Data Grid, Tree List, Navigation Bar等等)均支持ICollectionView接口. - Extended API:DevExpress WPF控件提供可扩展属性,添加其他MVVM样式。比如,你可以在一个Data Grid中加入colunmn和summary,Bar Manager中加入bar collection,Layout Control中加入item collection等等。
MVVM向导
跟随向导可以轻松构建MVVM应用程序。所有向导都可以在DevExpress Template Gallery中找到。
关于MVVM向导的更多介绍可以观看这个视频:MVVM Scaffolding Overview.
设计时扩展
Smart Tags for DevExpress WPF controls:可以设置和绑定大部分MVVM-aware属性(ItemsSource, SelectedItem, Command, CommandParameter, etc.)。在设计时,还可以帮助修改控件的布局(比如 Grid Control 新增一个column)。属性也可以通过专门的Binding editor进行绑定。
Smart Tags for standard WPF controls (available for Visual Studio 2012): 可以通过一个特定的Binding对话框set/bind常用属性(比如设置一个窗口的DataContext,或者将控件的属性与一个对象绑定)。
Instant Layout Assistant: 有这个工具在,在Views中创建高级布局变得前所未有的轻松!
从这里开始DevExpress WPF之旅
立即下载 | 示例Demo | 视频资源 | 入门指南 |
有任何疑问请电话详询 023-66090381 或 在线客服
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/637.html