久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

閑話WPF之二一(WPF中的數(shù)據(jù)處理 [3])

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

WPF提供了一個ObservableCollection類,,它實現(xiàn)了一個暴露了INotifyPropertyChanged的數(shù)據(jù)集合,。也就是說我們不需要自己對每個單獨的數(shù)據(jù)實現(xiàn)INotifyPropertyChanged結(jié)構(gòu)。我們先看看如何實現(xià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"));
        }
    }
}

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

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

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

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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多