【杂谈】“CommunityToolkit.Mvvm无法自动生成Get/Set属性对”的解决方案

这篇具有很好参考价值的文章主要介绍了【杂谈】“CommunityToolkit.Mvvm无法自动生成Get/Set属性对”的解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在实践MVVM,发现这玩意儿挺有意思的,有点WPF的最佳搭档的感觉。UI自动跟随VM变化,极大程度上简化各类逻辑。UI元素的各种属性也会实时反馈到VM上,直接在VM处理事务逻辑即可。

但是MVVM在WPF上应用,最烦的就是要自己写一大堆Get/Set,以及匹配INotifyPropertyChanged的调用。虽然Visual Studio里有对应的code snippet:propfull来完成快速完成这个事情,但是仍然要手动补全OnPropertyChanged()的调用,而且也要打很多字,十分不方便。

【杂谈】“CommunityToolkit.Mvvm无法自动生成Get/Set属性对”的解决方案
然后嘛,这种事情肯定早就有人造了轮子解决了。网上一搜,CommunityToolkit.Mvvm映入眼帘。MIT协议,微软官方背书,而且实现也很完美。Field上加个Attribute就完事儿了,后台自动生成对应的get/set+OnPropetyChanged的调用代码。
【杂谈】“CommunityToolkit.Mvvm无法自动生成Get/Set属性对”的解决方案

详见:
https://learn.microsoft.com/en-us/dotnet/communitytoolkit/mvvm/generators/observableproperty

按照上面说的,直接进行一个Nuget Package的安装,使用8.0以上版本即可享受到这个自动的待遇。

但是…… 装完好像有问题啊,这代码也没有自动生成啊(.Net Framework, Console项目),后面观察到网上的例子大部分都是高级版本的.NET或者是WPF应用程序项目,怎么,Console不能Mvvm了?
【杂谈】“CommunityToolkit.Mvvm无法自动生成Get/Set属性对”的解决方案
经过一番调查研究嘛,这个玩意儿的原理是Analyzer,它会类似于代码检查,当发现代码中包含这种带特别Attribute的满足某些条件(这里的条件是 1- 继承自ObservableObject,2- 标记为partial,3- Field被标记有ObservableProperty属性,当然有其他条件,可以查看这个Attribute的说明),则会自动生成 getter 和 setter。
所以嘛,找到项目,添加Analyzer。具体Analyzer的位置就在你的项目的sln文件的同级目录下的packages文件夹的CommunityToolkit.Mvvm...文件夹,具体位置如下

【杂谈】“CommunityToolkit.Mvvm无法自动生成Get/Set属性对”的解决方案
【杂谈】“CommunityToolkit.Mvvm无法自动生成Get/Set属性对”的解决方案
然后,似乎还是不太行嘛,但是这次Visual Studio给了个提示

【杂谈】“CommunityToolkit.Mvvm无法自动生成Get/Set属性对”的解决方案
原来是需要C# 8.0。那么好的,语言版本一改,重新加载项目,无敌起飞。

【杂谈】“CommunityToolkit.Mvvm无法自动生成Get/Set属性对”的解决方案
很好奇它自动生成的代码是什么的朋友们,可以直接F12点进去看看,这里就不展示了。

这样就完美解决了Mvvm在某些项目中,无法自动生成 getter/setter 的问题。文章来源地址https://www.toymoban.com/news/detail-472407.html

到了这里,关于【杂谈】“CommunityToolkit.Mvvm无法自动生成Get/Set属性对”的解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WPF CommunityToolkit.Mvvm

    CommunityToolkit.Mvvm(以下简称Toolkit)是WPF最有名的两个框架,一个是Prism,另一个就是Toolkit。 Prism可以看我的Prism详解 WPF Prims框架详解 Toolkit 官方文档 用 CommunityToolkit.Mvvm 加速 MVVM 开发流程 Toolkit简单复写了我们常用的两个方法 一个是 SetProperty,一个是RelayCommand SetProperty,通知

    2024年02月12日
    浏览(42)
  • CommunityToolkit.Mvvm----配置

    一、介绍: CommunityToolkit.Mvvm 包(又名 MVVM 工具包,以前称为 Microsoft.Toolkit.Mvvm)是一个现代、快速和模块化的 MVVM 库。 它是 .NET 社区工具包的一部分,围绕以下原则生成: 独立于平台和运行时 - .NET Standard 2.0、.NET Standard 2.1 和 .NET 6🚀(与 UI 框架无关) 易于选取和使用 - 对

    2024年04月17日
    浏览(82)
  • CommunityToolkit.Mvvm系列文章导航

    包  CommunityToolkit.Mvvm  (又名 MVVM 工具包,以前名为  Microsoft.Toolkit.Mvvm ) 是一个现代、快速且模块化的 MVVM 库。 它是 .NET 社区工具包的一部分,围绕以下原则构建: 平台和运行时独立  -  .NET Standard 2.0 、  .NET Standard 2.1  和  .NET 6 🚀 (UI Framework 不可知) 易于选取和使用  -

    2023年04月15日
    浏览(41)
  • 自动生成测试用例_接口测试用例自动生成工具

    写用例之前,我们应该熟悉API的详细信息。建议使用抓包工具Charles或AnyProxy进行抓包。 我们先来了解一下另一个项目har2case 他的工作原理就是将当前主流的抓包工具和浏览器都支持将抓取得到的数据包导出为标准通用的 HAR 格式(HTTP Archive),然后 HttpRunner 将 HAR 格式的数据

    2024年02月05日
    浏览(64)
  • CommunityToolkit.Mvvm笔记1---Instruction

            CommunityToolkit.Mvvm是一个官方社区套件(Windows Community Toolkit),延续了MVVMLight的风格,是一个现代、快速和模块化的 MVVM 库。 它是 .NET 社区工具包的一部分。 第一:入门安装 1,用NuGget安装,搜索CommunityToolkit找到安装即可。 2,Install-Package CommunityToolkit.Mvvm 命令安装

    2024年04月17日
    浏览(38)
  • CommunityToolkit.Mvvm学习笔记(4)——Messenger

    如果你对WPF有一定了解,你应该知道WPF中的命令是一个实现了ICommand接口的类。同样本文虽然标题是Messenger,但也要从IMessenger接口说起。至于Messenger的中文名,我觉得就叫它的直译“信使”好了,毕竟传递消息就是信使的能力嘛。 命名空间:Microsoft.Toolkit.Mvvm.Messaging 程序集:

    2024年02月05日
    浏览(49)
  • CommunityToolkit.Mvvm学习笔记(6)——RelayCommand

    由于项目时间比较紧,所以先拣使用频繁的模块学习了。ComponentModel中的ObservableValidator等后面有空再学。这篇先看命令RelayCommand,毕竟WPF中命令与变量的绑定是两大主要绑定。如果说属性绑定是向UI暴露数据,那Command就是向UI暴露方法(或者说逻辑)。 MVVM Toolkit中的RelayComm

    2024年02月06日
    浏览(41)
  • WPF CommunityToolkit.Mvvm Messenger通讯

    CommunityToolkit.Mvvm Messenger 十月的寒流: 如何使用 CommunityToolkit.Mvvm 中的 Messenger 来进行 ViewModel 之间的通信 我这里只讲简单的弱Messenger,这个是Toolkit帮我们封装好的,里面好像有什么垃圾回收什么的,里面怎么运行的我也没去研究。我这里就简单讲解一下怎么用 WeakReferenceMess

    2024年02月09日
    浏览(42)
  • CommunityToolkit.Mvvm学习笔记(3)——ObservableRecipient

    所处的位置, 命名控件:Microsoft.Toolkit.Mvvm.ComponentModel 程序集:Microsoft.Toolkit.Mvvm.dll 包:Microsoft.Toolkit.Mvvm ObservableRecipient类型是可监视对象(Observable objects)的一个基类,这些对象扮演着消息接收者的角色。ObservableRecipient类是ObservableObject的拓展,它也提供了使用IMessenger类型

    2024年02月11日
    浏览(38)
  • CommunityToolkit.Mvvm8.1 MVVM工具包安装引用指南(1)

      本系列文章导航 https://www.cnblogs.com/aierong/category/2297596.html     0.说明 CommunityToolkit.Mvvm包(又名MVVM 工具包,以前名为 Microsoft.Toolkit.Mvvm)是一个现代、快速且模块化的 MVVM 库。 它支持:.NET Standard 2.0、 .NET Standard 2.1 和 .NET 6(UI Framework 不支持)   文档地址: https://learn.microsoft.com/z

    2023年04月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包