今天在目标框架为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)的兼容性问题的更多相关文章

  1. Mvvm Light Toolkit for WPF/Silverlight系列之搭建mvvmlight开发框架

    Mvvm Light Toolkit for WPF/Silverlight系列之搭建mvvmlight开发框架   本章节,我将通过示例介绍如何搭建mvvmlight开发环境.示例中的我会针对wpf ...

  2. [WPF] 使用 MVVM Toolkit 构建 MVVM 程序

    1. 什么是 MVVM Toolkit 模型-视图-视图模型 (MVVM) 是用于解耦 UI 代码和非 UI 代码的 UI 体系结构设计模式. 借助 MVVM,可以在 XAML 中以声明方式定义 UI ...

  3. MVVM Light Toolkit使用指南

    原文:MVVM Light Toolkit使用指南 原文地址:  https://blog.csdn.net/ldld1717/article/details/77040077 概述 MVVM Lig ...

  4. MvvmLight学习篇—— Mvvm Light Toolkit for wpf/silverlight系列(导航)

    系列一:看的迷迷糊糊的 一.Mvvm Light Toolkit for wpf/silverlight系列之准备工作 二.Mvvm Light Toolkit for wpf/silverlight ...

  5. 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 ...

  6. Mvvm Light Toolkit 入门

    原文:Mvvm Light Toolkit 入门 前言 之前学习UWP的时候就一直看到有关MVVM的资料但是一直没有系统的去学,最近正好有时间,特地来攻破这个点,顺便学习一下VS与GitHub的链接和 ...

  7. Microsoft Dynamics 365 Developer Toolkit下载地址

    下载,支持Visual Studio 2012, 2013, 2015

  8. 记VS2008初始化Microsoft Visual Sourcesafe源码管理提供程序时失败

    之前vs2008开发一直都好好,不知道为什么如今的vs2008打开和关闭都老是弹出这这个初始化Microsoft Visual Sourcesafe源码管理提供程序时失败的错误 解决方法非常easy: ...

  9. 记一次 Microsoft.Bcl.Async 使用经验

    起因: 由于公司项目使用场景存在很多的XP环境,导致使用.NET Framework版本不能大于4.0版本.最近开发新功能时:从nuget上下载一个开源dll(该dll 4.0 版本依赖 Micros ...

  10. 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 ...

随机推荐

  1. Flutter自动生成安卓和IOS图标

    flutter_launcher_icons 用这个库自动生成 首先添加依赖 dev_dependencies: flutter_launcher_icons: flutter_icons: andr ...

  2. 设置Docker的默认文件存储位置

    对于windows下,直接修改docker desktop界面的配置项目.对于rocky linux下面,对应的配置文件存储在: vim /etc/docker/daemon.json 文件可以配置镜 ...

  3. Nginx日志重定向到标准输出

    背景静态站点使用`docker`部署时,希望`nginx前台启动`的同时可以将错误日志和访问日志全部重定向到标准输出,便于采集和处理! 实现只需要修改`nginx.conf`中`3行`关于日志的配置就 ...

  4. shell学习之路——取参数

    shell中参数的调用方式: 1.$0-9:表示第0个到第9个参数,其中$0表示文件执行路径.如:$0,$1. 2.${10以后}:如果参数数目大于9个,可以用${10},${11}...等方式表示. ...

  5. 基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.0版已发布

    关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级.高度提炼,一套API优雅支持UDP .TCP .WebSocket 三种协议,支持iOS.A ...

  6. 阿里IM技术分享(三):闲鱼亿级IM消息系统的架构演进之路

    本文由阿里闲鱼技术团队今朝.有攸分享,本次有修订. 1.引言 闲鱼即时消息系统历经数代迭代,目前已能稳定的支撑亿级消息体量. 在此消息系统的建设过程中,我们经历了从简单到复杂.从困扰到破局,每一次的技 ...

  7. RL中on-policy和off-policy的本质区别/重要性采样

    本随笔的图片都来自UCL强化学习课程lec5 Model-free prediction的ppt (Teaching - David Silver ). 回忆值函数的表达式: \[v_\pi(s) = ...

  8. Solution Set - “请背诵每条魔法的禁忌”

    目录 0.「HAOI 2018」「洛谷 P4494」反色游戏 1.「JSOI 2010」「洛谷 P6029」旅行 2.「CTSC 2017」「洛谷 P3774」最长上升子序列 3.「CTSC 2018 ...

  9. 网站架构核心技disruptor

    一 序:本章业务场景:队列在数据结构中是一种线性表,从一端插入数据,然后从另一端删除数据.作者举例的场景有:进行异步处理.系统解耦.数据同步.流量削峰.缓冲.限流等. 前面的比较浅,总结起来,核心知识 ...

  10. win11输入法候选区消失

    使用win11系统时,中文输入按空格可以,但是出现微软官方输入法没有候选区问题. 解决方法: 首先,打开任务管理器 然后,在进程选项中找到windows输入体验进程,结束该进程(该进程会自动重启). ...