免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
閑話WPF之十五(WPF的數(shù)據(jù)處理 [2])
上一個Post當(dāng)中,我敘述了WPF中的數(shù)據(jù)綁定相關(guān)的一堆理論知識。現(xiàn)在,我們將對其中的某些方面通過實例做進一步的分析。

在介紹WPF數(shù)據(jù)綁定源的種類時,第一種就是任意的CLR對象。這里需要注意的是WPF雖然支持任意的CLR對象,但是一個普通的CLR對象類卻不行。我們還需要在CLR對象類上實現(xiàn)一種變化通知機制。

WPF把這種通知機制封裝在了INotifyPropertyChanged接口當(dāng)中。我們的CLR對象類只要實現(xiàn)了這個接口,它就具有了通知客戶的能力,通常是在屬性改變后通知綁定的目標。

下面是一個簡單的例子,實現(xiàn)了一個支持通知功能的Camera類:

using System;

using System.ComponentModel;

using System.Windows.Media.Media3D;

namespace LYLTEST

{

    public class Camera : INotifyPropertyChanged

    {

        private PerspectiveCamera m_Camera;

        public event PropertyChangedEventHandler PropertyChanged;

        public Camera()

        {

            m_Camera = new PerspectiveCamera();           

        }

        private void NotifyPropertyChanged(String info)

        {

           if (PropertyChanged != null)

            {

                PropertyChanged(this, new PropertyChangedEventArgs(info));

            }

        }

         public PerspectiveCamera CameraProp

        {

            get { return m_Camera; }

            set

            {

                if (value != m_Camera)

                {

                    this.m_Camera = value;

                    NotifyPropertyChanged("CameraProp");

                }

            }

        }

    }

}

這一段代碼很簡單,首先引入類中使用的INotifyPropertyChangedPerspectiveCamera需要的名字空間。這里與普通CLR類的區(qū)別在于首先有一個公有的PropertyChangedEventHandler事件類型。然后我們在.NET屬性包裝CameraProp判斷屬性是否發(fā)生了變化,如果是,則用當(dāng)前是屬性名稱字符串“CameraProp”調(diào)用另一個私有函數(shù)NotifyPropertyChanged。由它根據(jù)屬性的名稱構(gòu)造一個PropertyChangedEventArgs對象,并完成對PropertyChanged的調(diào)用。它才是屬性變化時真正應(yīng)該調(diào)用的一個通知事件。

最后一點,如果我們需要通知所以的屬性都發(fā)生了變化,則將上面的屬性字符串“CameraProp”用參數(shù)NULL替代即可。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Silverlight實例教程 - Validation客戶端同步數(shù)據(jù)驗證
wpf list<T>與ObservableCollection<T>的區(qū)別
Data Binding和INotifyPropertyChanged是如何協(xié)調(diào)工作的?
INotifyPropertyChanged 接口用法
WPF綁定,后臺數(shù)據(jù)已更新,但前臺數(shù)據(jù)未刷新
SL WPF仿WIN8進度條
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服