List<T>

List<T>代表的是强类型的Ojbect集合,可以通过索引访问并且提供了查找、排序以及操作此集合的方法。List<T>基本上和ArrayList相同,它用数组的方式实现了接口IList<T>并且他的大小可以根据需要来自动增加。
0R35I126-0.jpg


List<T>的缺点

在使用ASP.NET开发时,我们简单的使用DataSource和DataBind来绑定数据,但是在SilverLight中就没有那么简单了。在ASP.NET中,绑定操作只是单向的。绑定操作一旦完成如果再想改变值的话,你必须得弹出一个已经赋值需要修改的对话框或者直接在表单上修改,最后再调用方法DataBind,这样的操作特别的麻烦。

ObservableCollection<T>

ObservableCollection是动态数据集合并且当集合中新增、修改或者删除项目时,或者集合被刷新时,都有通知机制(通过实现接口INotifyCollectionChanged)。
0R35H304-2.jpg


ObservableCollection<T>的缺点

在程序运行的过程中,通过新增、删除或者改变ObservableCollection集合中的数据时,只有新增和删除数据时,UI集合中的数据才改变。 但是在修改集合中已经存在的数据时UI层的数据却不能改变

管理员 2# Vincent 发表于 2012-2-22 13:57:02
这图很给力
高筑墙,广积粮!
高级工程师 3# SilverLight 发表于 2012-2-22 15:51:22
顶,楼主非常强悍
高级工程师 4# SilverLight 发表于 2012-2-22 15:52:16
那请问楼主,如果修改ObservableCollection怎么更新UI呢?

点评

yurlao  发表于 2012-2-23 09:13:50

修改==删+增 ?
见习构架师 5# wrhhappy2002 发表于 2012-2-23 09:23:55
修改ObservableCollection <T>内部的元素的值,确实不是ObservableCollection这个类能够覆盖到的,毕竟它负责的是一个对象数组,只有增和删是自己能知道的,但是如果要提供内部元素的通知功能,只需要把T这个类内部元素也实现成,改变时Notify一下,就好了
EBoy
高级工程师 6# SilverLight 发表于 2012-2-23 11:51:47
wrhhappy2002 发表于 2012-2-23 09:23
修改ObservableCollection 内部的元素的值,确实不是ObservableCollection这个类能够覆盖到的,毕竟它负责的 ...

小弟新手,能详细解释一下怎么Notify吗?能给个例子吗?
版主 7# jason.zhou 发表于 2012-2-23 12:44:12
SilverLight 发表于 2012-2-23 11:51
小弟新手,能详细解释一下怎么Notify吗?能给个例子吗?

只要把ObservableCollection<T> 里面的T继承INotifyPropertyChanged接口就ok了。
高级工程师 8# 风籽 发表于 2012-2-23 16:32:18
请问有没有资料提供一下?
让我学习一下:lol
您需要登录后才可以回帖 登录 | 注册

关于我们|手机版|Archiver|DEVDIV.COM ( 京ICP备07040843号 )  

GMT+8, 2012-5-19 17:07

Powered by DEVDIV.COM!

© 2010-2012 DEVDIV.COM Coummunity.

回顶部