记一次Microsoft.Toolkit.Mvvm(MVVM Toolkit)的兼容性问题
今天在目标框架为framework4.6.1的wpf项目中使用Microsoft.Toolkit.Mvvm7.1.1出现了一个比较怪异的编译时错误,前提是打开了 工具>选项>环境>预览功能>适用于NET Framework的新版WPF XAML设计器(需要重启) 。Visual Studio 2019 (16.10以上版本)
相关链接:https://docs.microsoft.com/zh-cn/visualstudio/xaml-tools/xaml-design-time-sample-data?view=vs-2019
一、定义如下类:
public class Class1 : Microsoft.Toolkit.Mvvm.ComponentModel.ObservableObject
{ }
然后在xaml文件中使用它:
<Window.Resources>
<local:Class1 x:Key="bbb"/>
</Window.Resources>
标红处报错: XDG004无法分配指定的值。应是以下类型:"Object" 。该错误导致当前xaml设计器无法正常显示,但启动程序的话,正常运行。
二、将xaml代码改为:
<Window.DataContext>
<local:Class1 x:Name="aaa"/>
</Window.DataContext>
标红处报错报错: XDG004无法分配指定的值。应是以下类型:"Object" XDG004附加的属性"Name"只能应用到从"Obiect"派生的类型。 。同样导致当前xaml设计器无法正常显示,启动程序的话,正常运行。
三、修改了 Class1 类,将其父类删除后程序没有报错。
public class Class1
{ }
四、将 Microsoft.Toolkit.Mvvm.ComponentModel.ObservableObject 重新作为 Class1 类的父类,并将 工具>选项>环境>预览功能>适用于NET Framework的新版WPF XAML设计器(需要重启) 关闭。
将 工具>选项>环境>预览功能>适用于NET Framework的新版WPF XAML设计器(需要重启) 关闭后,程序不再报错。
五、另创一个基于.net 5的wpf项目如上进行实验,错误全部消失了。
总结:.net framework框架下的wpf项目使用Microsoft.Toolkit.Mvvm,在Visual Studio 2019 (16.10以上版本)开启工具>选项>环境>预览功能>适用于NET Framework的新版WPF XAML设计器(需要重启)功能时,会出现兼容性问题。不清楚问题产生的原因与是否还有其它隐患。
相关链接:https://docs.microsoft.com/zh-cn/windows/communitytoolkit/mvvm/introduction
记一次Microsoft.Toolkit.Mvvm(MVVM Toolkit)的兼容性问题的更多相关文章
- Mvvm Light Toolkit for WPF/Silverlight系列之搭建mvvmlight开发框架
Mvvm Light Toolkit for WPF/Silverlight系列之搭建mvvmlight开发框架 本章节,我将通过示例介绍如何搭建mvvmlight开发环境.示例中的我会针对wpf ...
- [WPF] 使用 MVVM Toolkit 构建 MVVM 程序
1. 什么是 MVVM Toolkit 模型-视图-视图模型 (MVVM) 是用于解耦 UI 代码和非 UI 代码的 UI 体系结构设计模式. 借助 MVVM,可以在 XAML 中以声明方式定义 UI ...
- MVVM Light Toolkit使用指南
原文:MVVM Light Toolkit使用指南 原文地址: https://blog.csdn.net/ldld1717/article/details/77040077 概述 MVVM Lig ...
- MvvmLight学习篇—— Mvvm Light Toolkit for wpf/silverlight系列(导航)
系列一:看的迷迷糊糊的 一.Mvvm Light Toolkit for wpf/silverlight系列之准备工作 二.Mvvm Light Toolkit for wpf/silverlight ...
- How to install MVVM Light Toolkit via NuGet
Here is how you can install MVVM Light Toolkit via NuGet in an easy way using only Visual Studio. S ...
- Mvvm Light Toolkit 入门
原文:Mvvm Light Toolkit 入门 前言 之前学习UWP的时候就一直看到有关MVVM的资料但是一直没有系统的去学,最近正好有时间,特地来攻破这个点,顺便学习一下VS与GitHub的链接和 ...
- Microsoft Dynamics 365 Developer Toolkit下载地址
下载,支持Visual Studio 2012, 2013, 2015
- 记VS2008初始化Microsoft Visual Sourcesafe源码管理提供程序时失败
之前vs2008开发一直都好好,不知道为什么如今的vs2008打开和关闭都老是弹出这这个初始化Microsoft Visual Sourcesafe源码管理提供程序时失败的错误 解决方法非常easy: ...
- 记一次 Microsoft.Bcl.Async 使用经验
起因: 由于公司项目使用场景存在很多的XP环境,导致使用.NET Framework版本不能大于4.0版本.最近开发新功能时:从nuget上下载一个开源dll(该dll 4.0 版本依赖 Micros ...
- A Simple MVVM Example[Forward]
In my opinion, if you are using WPF or Silverlight you should be using the MVVM design pattern. It i ...
随机推荐
- tableau连接不上mysql或不显示mysql表的终极解决方法
[报错一]连不上mysql An error occurred while communicating with MySQL The connection to the data source mig ...
- 2024年1月Java项目开发指南15:vue3+AntDesignVue 设计页面
考虑到有的同学对vue3不熟悉,因此,我把ControlView.vue这个页面清空,我们从0开始写. <template style="width: 100%"> & ...
- 【C#】【平时作业】习题-4-流程控制
T1 创建一个Windows应用程序,先输入年龄值,再判断是否大于18,最后显示判断结果,运行效果如图所示. 提示: 注意保持逻辑完整: 引用数据需要明确出处. [程序代码] private void ...
- dockercompose配置ulimit
在 Docker Compose 文件中设置 ulimit 的方法如下: 在 Docker Compose 文件的 services 块中,为您要设置 ulimit 的服务添加 ulimits 子块, ...
- kubeadm卸载清空k8s环境
#!/bin/bash kubeadm reset -f modprobe -r ipip lsmod rm -rf ~/.kube/ rm -rf /etc/kubernetes/ rm -rf / ...
- Mybatisplus实现MetaObjectHandler接口自动更新创建时间更新时间
踩坑: 直接实现该接口,发现进入该类后的entity已经重新处理updateTime了,但是更新数据库的时候,却不带updateTime更新. 原因: 由于对该接口等认识不足导致. 解决方案: 实体类 ...
- [转]idea中创建maven的Javaweb工程并进行配置(图文教程)
原文链接: idea中创建maven的Javaweb工程并进行配置(图文教程)
- Harbor 共享后端高可用
1. 主机配置 主机地址 主机配置 主机角色 软件版本 192.168.1.60 CPU:4C MEM:4GB Disk: 100GB Harbor+Keepalived Harbor 2.1.3 K ...
- CDS标准视图:维护计划数据 C_MaintenancePlanDEX
视图名称:维护计划数据 C_MaintenancePlanDEX 视图类型:基础 视图代码: 点击查看代码 @AbapCatalog.sqlViewName: 'CMAINTPLANDEX' @Aba ...
- 阿里云-对象存储OSS
https://help.aliyun.com/product/31815.html 阿里云对象存储OSS(Object Storage Service)是一款海量.安全.低成本.高可靠的云存储服务, ...