C# 中的INotifyPropertyChanged和ObservableCollection

來源:互聯網
上載者:User
INotifyPropertyChanged它的作用:向用戶端發出某一屬性值已更改的通知。當屬性改變時,它可以通知用戶端,並進行介面資料更新.而我們不用寫很多複雜的代碼來更新介面資料,這樣可以做到方法簡潔而清晰,松耦合和讓方法變得更通用.可用的地方太多了:例如上傳進度,即時後台資料變更等地方。它的作用:向用戶端發出某一屬性值已更改的通知。當屬性改變時,它可以通知用戶端,並進行介面資料更新.而我們不用寫很多複雜的代碼來更新介面資料,這樣可以做到方法簡潔而清晰,松耦合和讓方法變得更通用.可用的地方太多了:例如上傳進度,即時後台資料變更等地方.目前我發現winform和silverlight都支援,確實是一個強大的介面.在建構函式中先綁定public Class_Name()   {       User user = new User();        user.Name = "your name";        user.Address = "your address";          textBox1.Text = user.Name;       textBox2.Text = user.Address;   }  編寫一個簡單的業務類public class User : INotifyPropertyChanged   {       public event PropertyChangedEventHandler PropertyChanged;          private string _name;        public string Name        {           get { return _name; }           set            {               _name = value;              if(PropertyChanged != null)               {                   PropertyChanged(this, new PropertyChangedEventArgs("Name"));               }           }       }         private string _address;       public string Address       {           get { return _address; }           set            {               _address = value;               if (PropertyChanged != null)               {                   PropertyChanged(this, new PropertyChangedEventArgs("Address"));               }           }       }   }    ObservableCollection綁定到集合資料繫結的資料來源對象可以是一個含有資料的單一對象,也可以是一個對象的集合。之前,一直在討論如何將目標對象與一個單一對象綁定。Silverlight中的資料繫結還能將目標對象與集合對象相綁定,這也是很常用的。比如顯示文章的題目列表、顯示一系列圖片等。如果要綁定到一個集合類型的資料來源對象,繫結目標可以使用ItemsControl,如ListBox或DataGrid等。另外,通過定製ItemsControl的資料範本(DataTemplate),還可以控制集合對象中每一項的顯示。  使用ObservableCollection資料來源集合對象必須繼承IEnumerable介面,為了讓目標屬性與資料來源集合的更新(不但包括元素的修改,還包括元素的增加和刪除)保持同步,資料來源集合還必須實現INotifyPropertyChanged介面和INotifyCollectionChanged介面。在Silverlight中建立資料來源集合可以使用內建的ObservableCollection類,因為ObservableCollection類既實現了INotifyPropertyChanged介面,又實現了INotifyCollectionChanged介面。使用ObservableCollection類不但可以實現Add、Remove、Clear和Insert操作,還可以觸發PropertyChanged事件。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.