最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#接口INotifyPropertyChanged使用方法

 更新時間:2022年01月26日 11:11:26   作者:痕跡g  
這篇文章介紹了C#接口INotifyPropertyChanged的使用方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

INotifyPropertyChanged:

該接口包含一個事件, 針對屬性發(fā)生變更時, 執(zhí)行該事件發(fā)生。

    //
    // 摘要:
    //     通知客戶端屬性值已更改。
    public interface INotifyPropertyChanged
    {
        //
        // 摘要:
        //     在屬性值更改時發(fā)生。
        event PropertyChangedEventHandler PropertyChanged;
    }

接下來, 用一個簡單的示例說明其簡單使用方法(大部分常用的做法演示):

1.定義一個ViewModelBase 繼承INotifyPropertyChanged 接口, 添加一個虛函數(shù)用于繼承子類的屬性進(jìn)行更改通知

2.MainViewModel中兩個屬性, Code,Name 進(jìn)行了Set更改時候的調(diào)用通知,

     public class ViewModelBase : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        protected virtual void OnPropertyChanged(string propertyName)
        {
            if (this.PropertyChanged != null)
                this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }


    public class MainViewModel : ViewModelBase
    {
        private string name;
        private string code;

        public string Name
        {
            get { return name; }
            set { name = value; OnPropertyChanged("Name"); }
        }

        public string Code
        {
            get { return code; }
            set { code = value; OnPropertyChanged("Code"); }
        }
    }

正如上面的代碼, 應(yīng)該注意到了, 每個屬性調(diào)用OnPropertyChanged的時候, 都需要傳一個自己的屬性名, 這樣是不是很多余?對, 很多余。

改造

看到有些文章給基類的參數(shù)修改為表達(dá)式樹, 這樣實(shí)現(xiàn)的時候,傳遞一個Lambda表達(dá)式, 我覺得這是不治標(biāo)不治本嗎?如下:

說明: 原來直接傳遞一個固定的string類型實(shí)參, 不說換成lambda的性能問題, 同樣帶來的問題你還是固定的需要去書寫這個參數(shù)。 不建議這么做!

CallerMemberName

該類繼承與 Attribute, 不難看出, 該類屬于定義在方法和屬性上的一種特效類, 實(shí)現(xiàn)該特性允許獲取方法調(diào)用方的方法或?qū)傩悦Q

    //
    // 摘要:
    //     允許獲取方法調(diào)用方的方法或?qū)傩悦Q。
    [AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
    public sealed class CallerMemberNameAttribute : Attribute
    {
        //
        // 摘要:
        //     初始化 System.Runtime.CompilerServices.CallerMemberNameAttribute 類的新實(shí)例。
        public CallerMemberNameAttribute();
    }

改造ViewModelBase:

改造之后, 是不是發(fā)現(xiàn)明顯區(qū)別:

不用傳遞參數(shù), 不用書寫lambda表達(dá)式, 也不用擔(dān)心其傳遞的參數(shù)安全, 直接根據(jù)讀取屬性名!

到此這篇關(guān)于C#接口INotifyPropertyChanged使用方法的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#解析JSON實(shí)例

    C#解析JSON實(shí)例

    這篇文章主要介紹了C#解析JSON的方法,主要采用了C#自帶的JavaScriptSerializer類來實(shí)現(xiàn),方法簡單實(shí)用,需要的朋友可以參考下
    2014-09-09
  • C#生成驗(yàn)證碼圖片的方法

    C#生成驗(yàn)證碼圖片的方法

    這篇文章主要為大家詳細(xì)介紹了C#生成驗(yàn)證碼圖片的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • C#中HttpWebRequest的用法詳解

    C#中HttpWebRequest的用法詳解

    這篇文章主要介紹了C#中HttpWebRequest的用法,以實(shí)例的形式詳細(xì)敘述了HttpWebRequest類中GET與POST的用法,非常具有參考借鑒價值,需要的朋友可以參考下
    2014-11-11
  • Unity快速生成常用文件夾的方法

    Unity快速生成常用文件夾的方法

    這篇文章主要介紹了Unity快速生成常用文件夾的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • Unity?UGUI的Dropdown下拉菜單組件使用詳解

    Unity?UGUI的Dropdown下拉菜單組件使用詳解

    這篇文章主要為大家介紹了Unity?UGUI的Dropdown下拉菜單組件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • DevExpress實(shí)現(xiàn)GridControl顯示Gif動畫的方法

    DevExpress實(shí)現(xiàn)GridControl顯示Gif動畫的方法

    這篇文章主要介紹了DevExpress實(shí)現(xiàn)GridControl顯示Gif動畫的方法,這是比較實(shí)用的方法,需要的朋友可以參考下
    2014-08-08
  • Unity接入百度AI實(shí)現(xiàn)通用物體和場景識別

    Unity接入百度AI實(shí)現(xiàn)通用物體和場景識別

    這篇文章主要介紹了在Unity中接入百度AI接口,從而實(shí)現(xiàn)通用物體和場景的識別,其中接口返回大類及細(xì)分類的名稱,并支持獲取識別結(jié)果對應(yīng)的百科信息。感興趣的可以學(xué)習(xí)一下
    2022-01-01
  • C#中的委托和事件

    C#中的委托和事件

    這篇文章介紹了C#中的委托和事件,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#多線程系列之任務(wù)基礎(chǔ)(一)

    C#多線程系列之任務(wù)基礎(chǔ)(一)

    本文詳細(xì)講解了C#多線程的任務(wù)基礎(chǔ),文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • C#之Socket操作類實(shí)例解析

    C#之Socket操作類實(shí)例解析

    這篇文章主要介紹了C#的Socket操作類用法,需要的朋友可以參考下
    2014-08-08

最新評論

政和县| 竹溪县| 盐山县| 邻水| 安陆市| 安徽省| 临西县| 金沙县| 绩溪县| 石河子市| 阳山县| 疏附县| 海口市| 木里| 都安| 任丘市| 义乌市| 青州市| 洱源县| 稷山县| 永川市| 株洲县| 东海县| 南汇区| 贡觉县| 义马市| 时尚| 乌拉特后旗| 建始县| 锡林郭勒盟| 北碚区| 乐亭县| 杂多县| 安徽省| 石棉县| 九台市| 阿勒泰市| 梅州市| 曲水县| 洪洞县| 娄底市|