国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
閑話WPF之二一(WPF中的數(shù)據(jù)處理 [3])
WPF中的數(shù)據(jù)處理。前面講過,通過實(shí)現(xiàn)INotifyPropertyChanged,我們可以改變使任意的CLR對(duì)象支持WPF的綁定源。但是,INotifyPropertyChanged通常只應(yīng)用在單個(gè)的類屬性上。在現(xiàn)實(shí)應(yīng)用中,我們還會(huì)遇到另外一種情況:我們需要監(jiān)視某一堆的數(shù)據(jù)是否發(fā)生變化。也就是說我們綁定的數(shù)據(jù)源不再是一個(gè)單獨(dú)數(shù)據(jù)對(duì)象。比如,綁定源是一個(gè)數(shù)據(jù)表時(shí),我們希望在表中任何一條數(shù)據(jù)發(fā)生變化就能得到通知。(這里暫不考慮WPF綁定對(duì)ADO.NET的支持。)

WPF提供了一個(gè)ObservableCollection類,它實(shí)現(xiàn)了一個(gè)暴露了INotifyPropertyChanged的數(shù)據(jù)集合。也就是說我們不需要自己對(duì)每個(gè)單獨(dú)的數(shù)據(jù)實(shí)現(xiàn)INotifyPropertyChanged結(jié)構(gòu)。我們先看看如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的綁定數(shù)據(jù)集合。

namespace NSLYL
{
    public class LYLDataObj
    {
         public LYLDataObj(string name, string description)
        {
            this.name = name;
            this.description = description;
        }

        public string Name
        {
            get { return name; }
            set { name = value; }
        }       

        public string Description
        {
            get { return description; }
            set { description = value; }
        }
       
        private string name;
        private string description;      
    }


    public class LYLDataObjCol : ObservableCollection<LYLDataObj>
    {
        public LYLDataObjCol()
        {
            this.Add(new LYLDataObj("Microsot", "Operating System"));
            this.Add(new LYLDataObj("Google", "Search"));
        }
    }
}

代碼很簡(jiǎn)單,基本上就是這樣的一個(gè)模板。然后,我們就可以把LYLDataObjCol綁定到一個(gè)需要多項(xiàng)數(shù)據(jù)的Element之上,比如ListBox、ComboBox等等。

<ListBox ItemsSource="{StaticResource dataObj}" .../>

綁定之后,只要我的LYLDataObjCol對(duì)象發(fā)送了變化,ListBox、ComboBox的數(shù)據(jù)也會(huì)有對(duì)應(yīng)的變化。

到現(xiàn)在,我們已經(jīng)知道在綁定的時(shí)候有兩種指定數(shù)據(jù)源的方式:1、DataContext,關(guān)于它我們在這個(gè)Post有簡(jiǎn)單介紹。2、直接用Binding類的Source屬性。那么,我們?cè)谑褂玫臅r(shí)候如何區(qū)別呢?首先,Source的優(yōu)先級(jí)比DataContext高,只有Source不存在,或者在當(dāng)前Source到不到需要的屬性時(shí)才會(huì)查找DataContext。除此之外,這兩者沒有真正的區(qū)別,只是建議使用Source,它能有助于我們調(diào)試應(yīng)用程序。因?yàn)橥ㄟ^它可以明確的得到Source的信息。而DataContext支持一種繼承。可以在父Element指定Source源。這同時(shí)也成為了DataContext的一個(gè)優(yōu)點(diǎn):如果多個(gè)Element需要綁定同一個(gè)Source源,那么我們只需要在一個(gè)地方指定DataContext,就可以在其子Element使用。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
WPF 原生綁定和命令功能使用指南
Silverlight 4 數(shù)據(jù)綁定
Data Binding和INotifyPropertyChanged是如何協(xié)調(diào)工作的?
WPF 綁定到非FrameworkElement對(duì)象
無廢話WPF系列9: Binding的源
《深入淺出WPF》學(xué)習(xí)筆記之深入淺出話Binding
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服