【WPF】解决无法对“xxx”类型的只读属性“xxx”进行TwoWay或OneWayToSource绑定

这篇具有很好参考价值的文章主要介绍了【WPF】解决无法对“xxx”类型的只读属性“xxx”进行TwoWay或OneWayToSource绑定。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

System.InvalidOperationException:“无法对“AowisingWincc.ViewModels.DialogScanDevicesViewModel”类型的只读属性“IOTGtatewayDeviceId”进行 TwoWay 或 OneWayToSource 绑定。”

这个异常是由于在进行数据绑定时,尝试将只读属性(IOTGtatewayDeviceId)设置为双向(TwoWay)或者从目标到源(OneWayToSource)的绑定方式引起的。

只读属性是指只有 getter 方法而没有 setter 方法的属性,因此无法从界面更改其值。在数据绑定过程中,如果将只读属性设置为双向或者从目标到源的绑定方式,会导致无法更新该属性的值,从而引发该异常。

解决这个问题的方式是将数据绑定的模式更改为单向(OneWay)或者从源到目标(OneWay)的绑定方式,以保持只读属性的值不被更改。或者,如果你需要在界面上更改该属性的值,你需要提供一个 setter 方法来允许更改。

请检查你的数据绑定代码,确保对只读属性的绑定使用了正确的绑定模式。

错误写法

  • xaml

<TextBox
	Width="256"
	Margin="0,10,10,0"
	VerticalAlignment="Top"
	materialDesign:HintAssist.HelperText="主机,首页中查看ID"
	materialDesign:HintAssist.Hint="主机ID"
	Style="{StaticResource MaterialDesignOutlinedTextBox}">
	 <TextBox.Text>
		 <Binding Path="IOTGtatewayDeviceId" UpdateSourceTrigger="PropertyChanged" />
	</TextBox.Text>
</TextBox>
  • csharp
        public string? IOTGtatewayDeviceId
        {
            get => _iotGtatewayDeviceId;
            private set => SetProperty(ref _iotGtatewayDeviceId, value);
        }

正确写法

去掉 private

  • csharp
        public string? IOTGtatewayDeviceId
        {
            get => _iotGtatewayDeviceId;
            set => SetProperty(ref _iotGtatewayDeviceId, value);
        }

总结

不能对set方法进行private修饰,否则该属性则会被定义为只读属性文章来源地址https://www.toymoban.com/news/detail-759423.html

到了这里,关于【WPF】解决无法对“xxx”类型的只读属性“xxx”进行TwoWay或OneWayToSource绑定的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • WPF RelativeSource属性-目标对象类型易错

    上一篇转载了RelativeSource的三种用法,其中 第二种用法 较常见,这里记录一下项目中曾经发生错误的地方,以防自己哪天忘记了,又犯了同样错误—WPF RelativeSource属性-CSDN博客 先回顾一下: 控件关联其父级容器的属性——AncestorType 详细介绍下AncestorLevel,它指的是以Bingding目

    2024年02月06日
    浏览(38)
  • Idea显示无法自动装配。找不到‘ xxx’类型的Bean

    问题如下:  原因: 当我们在使用@Autowired注解的时候,默认required=true,表示注入的时候bean必须存在,否则注入失败。 解决方案一: 在自动转配的注解后面添加(required=false)  解决方案二: 在设置-编辑器-检查中找到如下位置,将选框中的 ‘√‘ 去掉

    2024年02月02日
    浏览(42)
  • vue3+ts报错:无法找到模块“xxx.vue“的声明文件,xxx隐式拥有“any“类型

    1、报错原因:typescript不能识别.vue文件 2、解决方法: 可以在vite-env.d.ts中添加以下代码,如果没有 vite-env.d.ts ,可以自己新建一个 xxx.d.ts 类型的文件即可 创建好项目之后一直报错,搜索解决掉了,自己整理所用,原文链接:vue3+ts报错解决:无法找到模块“xxx.vue”的声明文

    2024年01月21日
    浏览(47)
  • 解除微信接收文件只读属性的最新解决方案,新版微信3.9.2.23也能用,适用范围更广,没有微信版本要求,不需要微信降级

    从3.9版本开始,微信PC端默认将接收到的Word、Excel等文件的文件属性设置为只读 ,这使得大家在打开文件后,对文件的修改只能以另存为新文件的方式进行保存,一时间很多小伙伴还不能接受这种设置。 之前也给大家分享过一个解决方案,就是将version.dll文件复制到微信安装

    2023年04月22日
    浏览(203)
  • 全网详细解决java.lang.ClassCastException: xxx类型 cannot be cast to xxx类型

    xxx类型 可以为如下类型: 我们自定义的类: Student 类 Project 类 Person 类 …等等 基本变量的包装类: int 的包装类 Integer long 的包装类 Long float 的包装类 Float …等等 字符串 String 类型 今天在写如下代码:

    2024年02月07日
    浏览(63)
  • 030.Python面向对象_类&补充_只读属性

    我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库文章合

    2024年02月07日
    浏览(39)
  • Typescript - 通俗易懂的 interface 接口,创建接口 / 基础使用 / 可选属性 / 只读属性 / 任意属性(详细教程)

    在面向对象语言中,接口是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类去实现。 TypeScript 中的接口是一个非常灵活的概念,除了可用于 对类的一部分行为进行抽象 以外,也常用于对「对象的形状(Shape)」进行描述。 ​TypeScript 的核心原则之一是对值所

    2023年04月15日
    浏览(49)
  • jar中没有主清单属性 java -jar xxx-0.0.1-SNAPSHOT.jar 没有主清单属性(解决 全程图解 windows)

      成功解决 查看pom.xml 打包文件是否有这行  正确的打包文件 为什么skiptrue/skip会导致找不到主清单属性? 在spring-boot-maven-plugin的配置中设置  skiptrue/skip  时,实际上你告诉Maven在执行构建生命周期时跳过这个插件的运行。此插件负责将你的项目打包成一个可执行的JAR文件,其

    2024年02月04日
    浏览(43)
  • 解决VS打不开xxx.ui文件,xxx.ui无法打开文件

    在使用vs进行开发时,居然无法打开qt的ui文件。这本质上是因为找不到 designer.exe 的路径。 1、右击ui文件,然后选择打开方式。 2、点击右侧的添加按钮, 3、点击程序后面的[…]按钮选择合适的路径,然后点击确定。例如我的路径是: D:Qt5Qt5.14.25.14.2msvc2017_64bindesigner.ex

    2024年02月11日
    浏览(53)
  • 【Python错误:无法找到模块xxx】——完整解决方案

    【Python错误:无法找到模块xxx】——完整解决方案 在使用Python编程过程中,经常会遇到无法找到模块的错误。当你试图导入一个模块时,Python会在搜索路径中查找该模块。如果无法找到该模块,则会出现“no module named xxx”的错误提示。本文将提供一些常见的解决方案,帮助

    2024年02月05日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包