如何在老旧的.NetFramework上使用最新的CommunityMvvmToolKit框架?
2024年6月21日大约 2 分钟
简介
用了 Community MvvmToolKit 之后,感觉再也回不去了,这个框架其实就是帮你生成代码,以前写属性绑定都是要自己手写很多内容,要先写一个 ModelBase 实现 INotifyPropertyChanged 接口,在里面实现 RaisePropertyChanged 方法,然后写一个绑定属性要写成下面这么一长串
private string number;
public string Number
{
get => number;
set
{
if (value != number)
{
number = value;
RaisePropertyChanged(nameof(Number));
}
}
}
但是有了 Community MvvmToolKit 之后,你只需要写
[ObservableProperty]
private string number;
这样就行了,然后分析器会在后台给你生成上面的代码,这个只是帮你生成代码,无任何运行时性能损耗,代码看起了也很整洁。
还有更多的特性,可以看看下面的教学索引。
ComunityMvvmToolKit 基本教学
关于 ComunityMvvmToolKit 框架的使用,可以看下面这两个教程,已经讲得很详细了,这里就不献丑了。
- B 站大佬教学视频: 用 CommunityToolkit.Mvvm 加速 MVVM 开发流程
- 官方文档:MVVM 工具包简介
如何在.NetFramework 上使用 Community MvvmToolKit 框架?
二开的项目基本都是Framework项目,要在上面用Community MvvmToolKit,其实感觉还是挺费劲的,折腾了好久,折腾出下面3种方案。
- 添加一个.net standard2.0 的项目,在 standard 项目上引用 MvvmToolKit,然后
.Net framework
项目引用这个 standard 项目。 - 升级 Net framework 项目文件到最新的 SDK 版本。这样就可以使用分析器功能。可以使用升级助手升级:upgrade assistant
这一点,坑有点多,会导致有些老旧的 dll 不能正常使用之类的问题。
- 直接在 netframwork 项目上引用 MvvmToolKit 的分析器。
第三点目前试出来,没有太大问题,主要就是要自己手动添加这个CommunityToolkit.Mvvm.SourceGenerators.dll
分析器。另外一个CommunityToolkit.Mvvm.CodeFixers.dll
貌似怎么也都添加不了,不过无所谓,主要是代码生成器可以使用就行。
之前一直是使用的第一种方案,但第一种方案把 ViewModel 和 Model 给分开在两个项目了,代码结构比较分散。目前第三种方案还没发现什么问题,代码是可以正常生成的。