ObservableCollection和List

最近一直忙于工作,做的就是WindowsPhone7的开发,我们做的第一个产品也已经上线了。希望大家多提宝贵意见,产品总是在意见中不断升级的。o(∩_∩)o 地址在最下面哦。

最近用的ObservableCollection 和List比较多,就写下它们两个的区别吧。

区别它们,最简单的方法就是看看他们继承的类和接口,还有它们的方法。(学习有技巧,会让你事半功倍,效率提高。)

ObservableCollection比较简单,继承了Collection<T>, INotifyCollectionChanged, INotifyPropertyChanged

image

然后再看看他们的摘要

Collection<T>:为泛型集合提供基类。

INotifyCollectionChanged:将集合的动态更改通知给侦听器,例如,何时添加和移除项或者重置整个集合对象。

INotifyPropertyChanged:向客户端发出某一属性值已更改的通知。

所以再ObservableCollection这个类的方法,对数据的操作很少,重点放在了当自己本事变化的时候(不管是属性,还是集合)会调用发出通知的事件。(一般用于更新UI,当然也可以用于写其他的事情。这个以后会写)

List就比较多了,继承了IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable。

image

IList<T>:表示可按照索引单独访问的一组对象。

ICollection<T>:定义操作泛型集合的方法。

IEnumerable<T>:公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代。

IList:表示可按照索引单独访问的对象的非泛型集合。

ICollection:定义所有非泛型集合的大小、枚举器和同步方法。

IEnumerable:公开枚举器,该枚举器支持在非泛型集合上进行简单迭代。

--------------------------------------------------------------------分界线---------------------------------------------------------------

然后随便做个demo看看效果。

image

xaml页面很简单,托2个listbox分别用来绑定ObservableCollection和List

image实体类。

image全部后台代码。

运行程序点击添加书籍按钮

image然后只有ObservableCollection的有添加。表示当集合对象的集合改变时,只有ObservableCollection会发出通知更新UI。

这只是他们两个区别之一。

综上所述:

ObservableCollection表示一个动态数据集合,在添加项、移除项或刷新整个列表时,此集合将提供通知。

List表示可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法。(大部分操作用Linq,很强大也很方便。)

--------------------------------------------------------------------分界线---------------------------------------------------------------

顺便做下广告:

还没毕业就能做自己喜欢的工作,表示灰常鸡动。也出了第一个产品。

应用市场地址:http://windowsphone.com/s?appid=842303d9-b04e-4e36-a250-9554dfeb9a38(域名必须是zh-cn)

其他市场:http://ntexe.com/20999.html

目前只针对大陆用户希望大家给与多多支持。

11112222333344445555

 

posted @ 2012-06-24 01:57  巫鸦  阅读(1803)  评论(1编辑  收藏  举报