#项目场景:需要在.NET Framework 4.7.2 WPF应用程序中直接使用CommunityToolkit.Mvvm库进行开发.
问题描述
#CommunityToolkit.Mvvm库具有自动代码生成器,能极大减小wpf程序开发的工作量,微软官方库:https://learn.microsoft.com/zh-cn/dotnet/communitytoolkit/mvvm/,支持NET Standard 2.0、 .NET Standard 2.1 和 .NET 6,可以在任何应用平台上使用:UWP、WinForms、WPF、Xamarin、Uno 等;和在任何运行时上:.NET Native、.NET Core、.NET Framework或 Mono。里面的异步Command确实很好用.
#但在直接建立的.NET Framework 4.7.2 库和应用程序项目中,遇到编译报错,无法正常运行.
解决方案:
1. 新建一个.netcore或者.net的Wpf项目
2. 双击项目,修改项目属性
将TargetFramework 修改为net472
增加属性LangVersion 9.0(MVVM 工具包中的源生成器功能要求使用项目将 C# 语言版本设置为至少 C# 8.0)
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net472</TargetFramework>
<RootNamespace>Wpf.NET_FrameworkMVVMTookitDemo</RootNamespace>
<UseWPF>true</UseWPF>
<LangVersion>9.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.1" />
</ItemGroup>
</Project>
3. 保存项目,重启VS
4. 通过Nuget 安装CommunityToolkit.Mvvm库
正常使用如下:
internal partial class MainWindowsViewModel : ObservableRecipient
{
/// <summary>
/// 测试字段
/// </summary>
[ObservableProperty]
private string text = "NET_FrameworkMVVMTookitDemo";
/// <summary>
/// 构造函数
/// </summary>
public MainWindowsViewModel()
{
}
}
项目源码如下(VS2022):
https://download.csdn.net/download/qiangpi6057/88251507
项目源码