日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

List和ObservableCollection的相互转化

發布時間:2023/11/27 生活经验 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 List和ObservableCollection的相互转化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在WPF , silverlight ,WP7中經常會用到List<T>和ObservableCollection<T>。這里簡單講一下他們之間的相互轉換。

1.List<T>的簡單介紹:

List<T>代表的是強類型的Ojbect集合,可以通過索引訪問并且提供了查找、排序以及操作此集合的方法。List基本上和ArrayList相同,它用數組的方式實現了接口IList并且他的大小可以根據需要來自動增加。

List<T>的缺點

在使用ASP.NET開發時,我們簡單的使用DataSource和DataBind來綁定數據,但是在SilverLight中就沒有那么簡單了。在ASP.NET中,綁定操作只是單向的。綁定操作一旦完成如果再想改變值的話,你必須得彈出一個已經賦值需要修改的對話框或者直接在表單上修改,最后再調用方法DataBind,這樣的操作特別的麻煩。

?

2.ObservableCollection的介紹:

ObservableCollection是動態數據集合并且當集合中新增、修改或者刪除項目時,或者集合被刷新時,都有通知機制(通過實現接口INotifyCollectionChanged)。

ObservableCollection的缺點

當集合中的屬性中改變時沒有提供任何的通知機制。在程序運行的過程中,通過新增、刪除或者改變ObservableCollection集合中的數據時,只有新增和刪除數據時,UI集合(DataGrid)中的數據才改變。但是在修改集合中已經存在的數據時UI層的數據卻不能改變。

?

3.這里不得不提一下子INotifyPropertyChanged,它不是集合,只是一個接口。在類中提供一個事件PropertyChanged,當屬性的值發生改變時通知客戶端。如果對象的狀態發生改變時(新增、修改、刪除)將觸發事件PropertyChange指向那些已經發生改變的集合。?????????????????

ObservableCollection能通知他變化了也正是因為它實現了INotifyPropertyChanged接口。只是微軟給出了具體的實現,如果要寫List需要自己實現 INotifyPropertyChanged接口,

說了這么多,言歸正傳,對于它們互換:
T tList = new List(tObjectStruct .ToList());??
ObservableCollection tObjectStruct? = new ObservableCollection(tList);??
都在構造函數中即可完成
也可以:
tList.ForEach(p => tObjectStruct.Add(t));

轉載于:https://www.cnblogs.com/zjoch/archive/2011/12/08/2281075.html

總結

以上是生活随笔為你收集整理的List和ObservableCollection的相互转化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。