返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >解决WPF附加属性的Set函数不调用的问题
  • 945
分享到

解决WPF附加属性的Set函数不调用的问题

2024-04-02 19:04:59 945人浏览 薄情痞子
摘要

今天写程序的时候用到了附加属性,我是用VS内置的propa的代码段来实现的,代码如下: class Attach { public static bo

今天写程序的时候用到了附加属性,我是用VS内置的propa的代码段来实现的,代码如下:

    class Attach
    {
        public static bool GetIsEnabled(DependencyObject obj)
        {
            return (bool)obj.GetValue(IsEnabledProperty);
        }

        public static void SetIsEnabled(DependencyObject obj, bool value)
        {
            obj.SetValue(IsEnabledProperty, value);
        }

        public static readonly DependencyProperty IsEnabledProperty =
            DependencyProperty.ReGISterAttached("IsEnabled", typeof(bool), typeof(Attach), new PropertyMetadata(false));
    }

在XAML中使用的方式如下:

<Grid local:Attach.IsEnabled="true" x:Name="grid" />

但是,调试的时候却发现一个问题:虽然附加属性的值的读取和写入都没有什么问题,但是按理说Attach.SetIsEnabled函数在启动的时候应该会调用一次在对,但却断点断不到。加入属性变更的回调通知时,回调函数也能正常的运行。

我在网上找了一些示例代码,发现有有的断点能断到Set函数中,有的却不行。然后就将示例代码和我的代码一一比较,最后发现只要在注册附加属性的名称后面加一个"Property"就可以了。改成如下所示

    class Attach
    {
        public static bool GetIsEnabled(DependencyObject obj)
        {
            return (bool)obj.GetValue(IsEnabledProperty);
        }

        public static void SetIsEnabled(DependencyObject obj, bool value)
        {
            obj.SetValue(IsEnabledProperty, value);
        }

        public static readonly DependencyProperty IsEnabledProperty =
            DependencyProperty.RegisterAttached("IsEnabledProperty", typeof(bool), typeof(Attach), new PropertyMetadata(false));
    }

最开始我以为是VS提供的代码段有问题,导致我生成了错误的代码,便到MSDN上去查了一下,发现MSDN的示例代码页也没有"Property"后缀(地址:附加属性概述)。也就是说,自动生成的不带"Property"后缀才是正统形式。虽然两种形式的执行结果都是一样的,但是默认的这种第一次不掉用Set函数行为肯定是有问题的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 解决WPF附加属性的Set函数不调用的问题

本文链接: https://lsjlt.com/news/152240.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 解决WPF附加属性的Set函数不调用的问题
    今天写程序的时候用到了附加属性,我是用VS内置的propa的代码段来实现的,代码如下: class Attach { public static bo...
    99+
    2024-04-02
  • Vue使用vm.$set()解决对象新增属性不能响应的问题
           在Vue.js中,当你向一个已经创建的对象添加新属性时,Vue无法检测到该变化并自动更新视图。这是因为Vue在初始化时对数据进行...
    99+
    2023-05-18
    Vue 使用vm.$set() Vue 对象新增属性不能响应
  • sql server2012附加数据库问题的解决方法
    sql server2012附加数据库问题的解决方法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。SQLServer错误512...
    99+
    2024-04-02
  • 解决Vue的组件属性this不存在问题
    目录Vue的组件属性this不存在问题来源原因解决方案Vue中的this丢失解决方案Vue的组件属性this不存在 问题来源 今天写代码,发现我的mounted方法里面的this全部...
    99+
    2024-04-02
  • Go 不理解 http.Server Handler 如何调用附加到空结构的函数
    php小编香蕉在这里为大家解答一个关于Go语言中的问题:Go不理解http.Server Handler如何调用附加到空结构的函数。在Go语言中,http.Server是一个用于处理H...
    99+
    2024-02-10
    go语言
  • SQL附加数据库失败问题的解决方法
    这篇文章将为大家详细讲解有关SQL附加数据库失败问题的解决方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。为了偷个懒,利用这个数据库,但是在附加的时候出错...
    99+
    2024-04-02
  • WPF应用启动慢的问题解决
    目录方案一,更改启动项方案二,禁用检查应用程序的CAS发布者策略方案一,更改启动项 出问题应用的启动项是使用的默认设置,查看App.g.cs文件,可以看到自动生成的Main入口函数...
    99+
    2024-04-02
  • ie6下position:absolute属性不显示问题的解决方法
    本篇内容介绍了“ie6下position:absolute属性不显示问题的解决方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔...
    99+
    2024-04-02
  • sqlserver附加.mdf权限问题的解决方法
    sqlserver附加.mdf权限问题的解决方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。问题:数据库附加.mdf文件时,提示无法打开...
    99+
    2024-04-02
  • 如何解决div层调整z-index属性无效的问题
    本篇文章为大家展示了如何解决div层调整z-index属性无效的问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。z-index 无效在做的过程中,发现了一个很简单...
    99+
    2024-04-02
  • vue.set向对象里增加多层数组属性不生效问题及解决
    目录属性多层数组数据的添加修改为什么需要使用Vue.set?最近项目中使用到了树形表格向对象数组中添加新属性属性多层数组数据的添加修改 为什么需要使用Vue.set? vue中不能检...
    99+
    2024-04-02
  • 解决@Value注解不能注入static修饰的属性问题
    目录@Value注解不能注入static属性问题描述剖析@Value(“${属性}“)注入被static修饰的属性问题描述解决方案@Value注解不能注入st...
    99+
    2024-04-02
  • 如何解决vue动态为数据添加新属性遇到的问题
    这篇文章主要介绍了如何解决vue动态为数据添加新属性遇到的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。vue为数据添加属性时遇到的坑,...
    99+
    2024-04-02
  • PHP 函数的并发性问题如何解决?
    php 函数并发性问题及其解决方案:竞争条件:多个函数同时访问共享资源,使用同步函数和锁机制解决。死锁:使用锁和互斥体控制资源访问。饥饿:使用协同程序和生成器允许函数交替执行。消息队列:...
    99+
    2024-04-27
    php 并发 同步机制
  • 解决@RequestBody部分属性丢失的问题
    目录@RequestBody部分属性丢失问题描述JavaBean实现Controller实现postman接口请求展示结论springboot @RequestBody注入属性为空对...
    99+
    2024-04-02
  • 如何解决ajax回调函数中使用$(this)取不到对象的问题
    本篇内容主要讲解“如何解决ajax回调函数中使用$(this)取不到对象的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决ajax回调函数中使用$(t...
    99+
    2024-04-02
  • 如何解决 PHP mb_substr 函数不起作用的问题
    解决 PHP mb_substr 函数不起作用的问题 在 PHP 开发中,我们经常会使用 mb_substr 函数来对字符串进行截取操作,尤其是在处理中文字符串时更为常见。然而,有时候...
    99+
    2024-04-02
  • 快速解决fragment中onActivityResult不调用的问题
    fragment 通过startActivityForResult方法启动另一个activity,返回时,不调用onActivityResult方法,解决步骤:   在Fragment所属的Activity中,重写了onActiv...
    99+
    2023-05-31
    fragment onactivityresult 不调用
  • 解决微服务feign调用添加token的问题
    微服务feign调用添加token 1.一般情况是这么配置的 具体的怎么调用就不说了 如下配置,就可以在请求头中添加需要的请求头信息。 package localdate; im...
    99+
    2024-04-02
  • 解决Goland 同一个package中函数互相调用的问题
    使用的为 goland 碰到同一个 package 互相调用,编译显示函数未定义, 原因为默认按file 编译,默认没有编译version.go 解决方法 设置按照 package ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作