欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決WPF附加屬性的Set函數(shù)不調(diào)用的問(wèn)題

 更新時(shí)間:2022年06月22日 10:09:06   作者:天方  
這篇文章介紹了解決WPF附加屬性的Set函數(shù)不調(diào)用的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

今天寫(xiě)程序的時(shí)候用到了附加屬性,我是用VS內(nèi)置的propa的代碼段來(lái)實(shí)現(xiàn)的,代碼如下:

    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" />

但是,調(diào)試的時(shí)候卻發(fā)現(xiàn)一個(gè)問(wèn)題:雖然附加屬性的值的讀取和寫(xiě)入都沒(méi)有什么問(wèn)題,但是按理說(shuō)Attach.SetIsEnabled函數(shù)在啟動(dòng)的時(shí)候應(yīng)該會(huì)調(diào)用一次在對(duì),但卻斷點(diǎn)斷不到。加入屬性變更的回調(diào)通知時(shí),回調(diào)函數(shù)也能正常的運(yùn)行。

我在網(wǎng)上找了一些示例代碼,發(fā)現(xiàn)有有的斷點(diǎn)能斷到Set函數(shù)中,有的卻不行。然后就將示例代碼和我的代碼一一比較,最后發(fā)現(xiàn)只要在注冊(cè)附加屬性的名稱(chēng)后面加一個(gè)"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));
    }

最開(kāi)始我以為是VS提供的代碼段有問(wèn)題,導(dǎo)致我生成了錯(cuò)誤的代碼,便到MSDN上去查了一下,發(fā)現(xiàn)MSDN的示例代碼頁(yè)也沒(méi)有"Property"后綴(地址:附加屬性概述)。也就是說(shuō),自動(dòng)生成的不帶"Property"后綴才是正統(tǒng)形式。雖然兩種形式的執(zhí)行結(jié)果都是一樣的,但是默認(rèn)的這種第一次不掉用Set函數(shù)行為肯定是有問(wèn)題的。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#自定義字符串補(bǔ)0函數(shù)實(shí)例

    C#自定義字符串補(bǔ)0函數(shù)實(shí)例

    這篇文章主要介紹了C#自定義字符串補(bǔ)0函數(shù),通過(guò)一個(gè)自定義函數(shù)形式實(shí)例分析了C#操作字符串實(shí)現(xiàn)補(bǔ)零操作的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • C# XML中的轉(zhuǎn)義字符操作

    C# XML中的轉(zhuǎn)義字符操作

    這篇文章主要介紹了C# XML中的轉(zhuǎn)義字符操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • 深入C#字符串和享元(Flyweight)模式的使用分析

    深入C#字符串和享元(Flyweight)模式的使用分析

    本篇文章是對(duì)C#字符串與享元(Flyweight)模式的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C# 利用ICSharpCode.SharpZipLib實(shí)現(xiàn)在線壓縮和解壓縮

    C# 利用ICSharpCode.SharpZipLib實(shí)現(xiàn)在線壓縮和解壓縮

    本文主要主要介紹了利用ICSharpCode.SharpZipLib第三方的DLL庫(kù)實(shí)現(xiàn)在線壓縮和解壓縮的功能,并做了相關(guān)的代碼演示。
    2016-04-04
  • C#、ASP.NET通用擴(kuò)展工具類(lèi)之TypeParse

    C#、ASP.NET通用擴(kuò)展工具類(lèi)之TypeParse

    這篇文章主要介紹了C#、ASP.NET通用擴(kuò)展工具類(lèi)之TypeParse,使用了此類(lèi),類(lèi)型轉(zhuǎn)換方便多了,本文直接給出實(shí)現(xiàn)代碼和使用方法,需要的朋友可以參考下
    2015-06-06
  • c#閉包使用方法示例

    c#閉包使用方法示例

    這篇文章主要介紹了如何使用C#的閉包功用,例子很簡(jiǎn)單,大家參考使用吧
    2013-11-11
  • C# 實(shí)現(xiàn)FTP上傳資料的示例

    C# 實(shí)現(xiàn)FTP上傳資料的示例

    這篇文章主要介紹了C# 實(shí)現(xiàn)FTP上傳資料的示例,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2020-12-12
  • c#實(shí)現(xiàn)md5加密示例

    c#實(shí)現(xiàn)md5加密示例

    這篇文章主要介紹了md5加密,加密結(jié)果可以為32位、48位、64位,只要修改一下參數(shù)就可以實(shí)現(xiàn)
    2014-01-01
  • C#定時(shí)器組件FluentScheduler用法

    C#定時(shí)器組件FluentScheduler用法

    這篇文章介紹了C#定時(shí)器插件FluentScheduler的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C#實(shí)現(xiàn)調(diào)用迅雷下載的方法

    C#實(shí)現(xiàn)調(diào)用迅雷下載的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)調(diào)用迅雷下載的方法,非常實(shí)用的一個(gè)技巧,對(duì)于進(jìn)行C#程序設(shè)計(jì)有很好的借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08

最新評(píng)論