2024年终活动

DevExpress控件使用交流,DevExpress中国社区Dev联系电话 联系电话:023-68661681

什么是MVVM?如何快速上手MVVM库开发WPF应用?

来源:   发布时间:2016-04-11   浏览:3367次

一张图搞懂什么是MVVM

什么是 MVVM:它是一个 MVC 的增强版,正式连接了视图和控制器,并将表示逻辑从 Controller 移出放到一个新的对象里,即 View Model。MVVM 听起来很复杂,但它本质上就是一个精心优化的 MVC 架构。(@译者朱宏旭语)

MVVM是Model-View-ViewModel的缩写形式,通常被用于WPF或Silverlight开发。

采用双向绑定(data-binding)模式:View的变动,自动反映在 ViewModel,反之亦然。View和Model之间不发生通信。Angular 和 Ember 都采用这种模式。

一张图搞懂什么是MVVM

这篇文章讲得非常清晰,墙裂推荐 关于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 降低了构建松散耦合应用程序架构的难度。
  • 构建任何视觉组件缺失的功能,并将它运用于任何需要的地方。
  • 轻松应对大多数你可能会遇到的数值转换场景。

DevExpress MVVM库

传统型和扩展型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.

DevExpress WPF MVVM向导

 

设计时扩展

Smart Tags for DevExpress WPF controls:可以设置和绑定大部分MVVM-aware属性(ItemsSource, SelectedItem, Command, CommandParameter, etc.)。在设计时,还可以帮助修改控件的布局(比如 Grid Control 新增一个column)。属性也可以通过专门的Binding editor进行绑定。

MVVM设计时扩展

Smart Tags for standard WPF controls (available for Visual Studio 2012): 可以通过一个特定的Binding对话框set/bind常用属性(比如设置一个窗口的DataContext,或者将控件的属性与一个对象绑定)。

MVVM DevExpress

Instant Layout Assistant: 有这个工具在,在Views中创建高级布局变得前所未有的轻松!


从这里开始DevExpress WPF之旅

devexpress devexpress devexpress devexpress
立即下载 示例Demo 视频资源 入门指南

 

有任何疑问请电话详询 023-66090381 在线客服

 

本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/637.html
扫码咨询
电话咨询
023-68661681
返回
顶部