前言
在Wpf下最常使用的就是Mvvm模式了,有自己造轮子构建Mvvm框架的,也有使用现成的开源项目,我之前一直使用的是轻量级的MvvmLight了,这个框架还是非常不错的,使用也简单,不占用太大空间,其中最喜欢的莫过于全局Messenger了,可谓是神器。最近有个项目使用.Net6开发,在NuGet发现MvvmLight已经很久不更新了,上一次还是2018年9月12日,偶然发现微软官方出的Microsoft.Toolkit.Mvvm 完全继承了Messenger的优良传统,这是一个官方社区套件(Windows Community Toolkit),延续了MVVMLight的风格,是一个轻量级的组件,而且它基于.NET Standard 2.0,可用于UWP, WinForms, WPF, Xamarin, Uno等多个平台。
相比它的前身 MVVMLight,它有以下特点:
更高:版本号更高,一出手就是7.0。
更快:速度更快,MVVM Toolkit从一开始就以高性能为实现目标。
更强:后台更强,MVVM Toolkit的全程是’Microsoft.Toolkit.Mvvm’,根正苗红。
官方文档地址:
链接: https://docs.microsoft.com/zh-cn/windows/communitytoolkit/mvvm/introduction
环境
运行环境:.Net 6
开发环境:VS2022 17.0.4
框架语言:WPF
注意
CommunityToolkit.Mvvm 和 Microsoft.Toolkit.Mvvm 有啥区别[doge脸]
哈哈,从Nuget包管理中可以看到,两个套件除了名字不同,其他几乎一模一样,微软改名部实锤了,
使用
如果用过MvvmLight的话,上手应该是非常简单的
1、ObservableObject的使用
在MvvmLight框架下,只要在ViewModel继承ViewModelBase即可,在Microsoft.Toolkit.Mvvm中正常继承ObservableObject即可,同时还有ObservableRecipient、ObservableValidator等可被选择,其实在MvvmLight框架下,ViewModelBase也是继承了ObservableObject,相当于官方的这个框架更加的灵活,在不同的场景下继承不同的类,以实现不同的效果,