利刃 MVVMLight

已经很久没有写系列文章了,上一次是2012年写的HTLM5系列,想想我们应该是较早一批使用HTML5做项目的人。

相比我当时动不动100+的粉丝增长和两天3000+的阅读量,MVVM Light只能算小众技术了,也是因为她小众,才更具意义,
不希望有人跟我一样网上找案例找半天。

写的初衷也是希望同项目组的同事能更好的融入和接收已有项目。
其中两篇《DispatchHelper在多线程和调度中的使用》和《Messenger》是在上林院长课的时候抱着笔记本写的,现在想想挺后悔的,

再回头上两节林院长的课基本已经不可能了。

本来还有一篇《MVVM 编写基于表示层的单元测试》,草稿都打好了,后来想想关联性不是很强就去掉了。

利刃 MVVMLight 1:MVVMLight介绍以及在项目中的使用

利刃 MVVMLight 2:Model、View、ViewModel结构以及全局视图模型注入器的说明

利刃 MVVMLight 3:双向数据绑定

利刃 MVVMLight 4:绑定和绑定的各种使用场景

利刃 MVVMLight 5:绑定在表单验证上的应用

利刃 MVVMLight 6:命令基础

利刃 MVVMLight 7:命令深入

利刃 MVVMLight 8:DispatchHelper在多线程和调度中的使用

利刃 MVVMLight 9:Messenger

利刃 MVVMLight 10:Messenger 深入

时间: 2024-07-31 14:32:42

利刃 MVVMLight的相关文章

利刃 MVVMLight 3:双向数据绑定

上篇我们已经了解了MVVM的框架结构和运行原理.这里我们来看一下伟大的双向数据绑定. 说到双向绑定,大家比较熟悉的应该就是AngularJS了,几乎所有的AngularJS 系列教程的开篇几章都要涉及到,真的是很好用. 表达的效果很简单:就是在界面的操作对数据模型的修改能实时反映到数据:而数据的变更能实时展现到界面.即视图数据模型(ViewModel)和视图(View)之间的双向绑定和触发. 我们来操作一个试试看: 第一步:先写一个Model,里面包含我们需要的数据信息,代码如下: 1 ///

利刃 MVVMLight 2:Model、View、ViewModel结构以及全局视图模型注入器的说明

上一篇我们已经介绍了如何使用NuGet把MVVMLight应用到我们的WPF项目中.这篇我们来了解下一个基本的MVVMLight框架所必须的结构和运行模式. MVVMLight安装之后,我们可以看到简易的框架布局,如上篇,生成了一个ViewModel文件夹,ViewModel层的内容都放在这边,除了Main对象的ViewModel之外,还包含一个ViewModelLocator文件, 用来注入当前的ViewModel全局实例. 一.先来说说分层结构: 如图: 1.View负责前端展示,与View

利刃 MVVMLight 1:MVVMLight介绍以及在项目中的使用

一.MVVM 和 MVVMLight介绍 MVVM是Model-View-ViewModel的简写.类似于目前比较流行的MVC.MVP设计模式,主要目的是为了分离视图(View)和模型(Model)的耦合. 它是一种极度优秀的设计模式,但并非框架级别的东西,由MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构. 立足于原有MVP框架并且把WPF的新特性糅合进去,以应对PC端开发日益复杂的需求变化. 结构如图所示: 相对于之前把逻辑结构写在Co

利刃 MVVMLight 5:绑定在表单验证上的应用

表单验证是MVVM体系中的重要一块.而绑定除了推动 Model-View-ViewModel (MVVM) 模式松散耦合 逻辑.数据 和 UI定义 的关系之外,还为业务数据验证方案提供强大而灵活的支持. WPF 中的数据绑定机制包括多个选项,可用于在创建可编辑视图时校验输入数据的有效性. 常见的表单验证机制有如下几种: 验证类型 说明 Exception 验证 通过在某个 Binding 对象上设置 ValidatesOnExceptions 属性,如果源对象属性设置已修改的值的过程中引发异常,

利刃 MVVMLight 7:命令深入

上面一篇我们大致了解了命令的基本使用方法和基础原理,但是实际在运用命令的时候会复杂的多,并且会遇到各种各样的情况. 一.命令带参数的情况: 如果视图控件所绑定的命令想要传输参数,需要配置 CommandParameter 属性 ,用来传输参数出去. 而继承制Icommand接口的 RelayCommand又支持泛型的能力,这样就可以接受来自客户端请求的参数. public RelayCommand(Action<T> execute);构造函数传入的是委托类型的参数,Execute 和 Can

利刃 MVVMLight 6:命令基础

在MVVM Light框架中,事件是WPF应用程序中UI与后台代码进行交互的最主要方式,与传统方式不同,mvvm中主要通过绑定到命令来进行事件的处理, 因此要了解mvvm中处理事件的方式,就必须先熟悉命令的工作原理. RelayCommand命令:    WPF命令是通过实现 ICommand 接口创建的. ICommand 公开了两个方法(Execute 及 CanExecute)和一个事件(CanExecuteChanged). Execute方法 执行与命令关联的操作 CanExecute

利刃 MVVMLight 8:DispatchHelper在多线程和调度中的使用

在应用程序中,线程可以被看做是应用程序的一个较小的执行单位.每个应用程序都至少拥有一个线程,我们称为主线程,这是在启动时调用应用程序的主方法时由操作系统分配启动的线程. 当调用和操作主线程的时候,该操作将动作添加到一个队列中.每个操作均按照将它们添加到队列中的顺序连续执行,但是可以通过为这些动作指定优先级来影响执行顺序,而负责管理此队列的对象称之为线程调度程序. 在很多情况下,我们启动新的线程主目的是执行操作(或等待某个操作的结果),而不会导致应用程序的其余部分被阻塞.密集型计算操作.高并发I/

利刃 MVVMLight 4:绑定和绑定的各种使用场景

一.绑定: 主要包含元素绑定和非元素绑定两种. 1.元素绑定,是绑定的最简单形式,源对象是WPF的元素,并且源对象的属性是依赖项属性. 根据我们之前的知识 ,依赖项属性具有内置的更改通知支持.所以当我们的源对象中改变依赖项属性的值时,会立即更新目标对象中的绑定属性. 以上篇的例子来重写,我们不用额外定义全局公开的属性来支持数据的显示. 如下: 1 <StackPanel Orientation="Vertical" HorizontalAlignment="Left&q

Messenger 深入

1.Messager交互结构和消息类型 衔接上篇,Messeger是信使的意思,顾名思义,他的目是用于View和ViewModel 以及 ViewModel和ViewModel 之间的消息通知和接收. Messenger类用于应用程序的通信,接受者只能接受注册的消息类型,另外目标类型可以被指定,用Send<TMessage, TTarget>(TMessage message)实现,在这种情况下信息只能被传递如果接受者类型和目标参数类型匹配, message可以是任何简单或者复杂的对象,你可以