一、引言
谈到MVVM设计模式,首先让人想到的是WPF。没错,MVVM的概念是微软在2005年提出的,并首次将其应用到WPF中。最近非常火的Vue.js也是使用了MVVM的设计模式。MVVM设计模式的核心部分是DataBinding机制。顾名思义,其功能就是将ViewModel绑定到View,并且将View控件的变换绑定到ViewModel的双向绑定。MVVM的优点是业务逻辑层不用关注View,只专注对ViewModel的处理,开发效率提升很大。
二、背景
最近公司在开发一套管理系统的桌面客户端程序,由于各种原因,最终选型使用WinForm进行开发。由于好几年没有再接触过WinForm了,起初一段时间非常的不适应,开发效率极低,不仅要考虑不同分辨率的适应情况(这里稍微吐槽一下:WinForm本身就难以处理不同分辨率的自适应),同时还要处理数据的显示及提交。
既然要提升开发效率,我们先从设计模式下手。今天要为大家带来的是ReactiveUI。
ReactiveUI是实现了MVVM模式的框架,它的核心目标是可以在ViewModel中相关属性发生变化时可以可执行相应的命令。ReactiveUI支持Xamarin、WPF、WinForm、Windows Phone、UWP。这里我们选择WinForm对应的版本ReactiveUI.WinForms。
三、示例
下面为大家带来ReactiveUI.WinForms的一个简单的示例,来一起认识ReactiveUI.WinForms。
####1、创建WinForm项目####
打开vs,我们创建一个WinForm的项目:
####2、安装ReactiveUI.WinForms####
项目创建完成后,鼠标右键单击当前项目,选择“管理NuGet程序包”,在打开的窗口中选择“浏览”,并搜索ReactiveUI.WinForms进行安装
####3、创建ViewModel####
在项目目录下新建文件夹ViewModel,并在文件夹下新建一个PersonViewModel类,写入如下代码:
using ReactiveUI;
namespace WinformMvvm.ViewModel
{
//ViewModel需要继承自ReactiveObject
public class PersonViewModel : ReactiveObject
{
private int _id;
private string _name;
private int _age;
public PersonViewModel()
{
Id = 1;
Name = "张三";
Age