博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#编程(五十六)----------可观察的集合ObservableCollection
阅读量:5810 次
发布时间:2019-06-18

本文共 1251 字,大约阅读时间需要 4 分钟。

原文链接: http://blog.csdn.net/shanyongxu/article/details/47080685

 

可观察的集合

如果需要集合中的元素核实删除或添加的信息,就可以使用ObservableCollection<T>.

 

ObservableCollection<T>类表示一个动态数据集合,在添加项,移除项或刷新整个列表时,刺激和将提供通知.

 

命名空间:System.Collections.ObjectModle

语法:public class ObservableCollection<T>:Collection<T>,INotifyCollectionChanged,INotifyPropertyChanged

 

在许多情况下,所使用的数据是对象的集合.例如,数据绑定中的一个常见方案是使用ItemsControl(ListBox,ListViewTreeView)来显示记录的集合.

 

可以枚举实现IEnumerable接口的任何集合.但是若要设置动态绑定,以使集合中的插入或删除操作可以自动更新UI,则该集合必须实现INotifyCollectionChanged接口.此接口公开CollectionChanged事件,只要基础集合发生更改,都应该引发该事件.

 

WPF提供ObservableCollection<T>,它是实现INotifyCollectionChanged接口的数据集合的内置实现.在实现自己的集合之前,请先考虑ObservableCollection<T>或一个现有的集合类,List<T>,collection<T>BindingList<T>.如果有高级方案并且希望实现自己的集合,请考虑使用IList,它提供可以通过索引朱哥访问的对象的非泛型集合.如果实现IList,则将使用数据绑定引擎提供最佳性能.

 

ObservableCollection的缺点:

当集合中的属性中改变是2没有提供任何的通知机制.在陈旭运行的过程中,通过新增,伤处或者改变ObservableCollection集合中的数据时,只有新增和删除数据时,UI集合中的数据才改变.但是在修改集合中已经存在的数据时UI层的数据却不能改变.

 

这里不得不说明一下INotifyPropertyChanged,他不是一个集合,只是一个接口.在类中提供一个事件PropertyChanged,当属性的值发生改变时通知客户端.如果对象的状态发生改变时(新增,修改,删除)将处罚书剑PropertyChanged只想那些已经发生改变的集合.

 

ObservableCollection能通知它变化了也正是因为他事先了INotifyPropertyChanged接口.只是微软给出了具体的实现,如果要写List需要自己实现INotifyPropertyChanged接口.

转载于:https://www.cnblogs.com/FinleyJiang/p/7602723.html

你可能感兴趣的文章
leetcode-74-搜索二维矩阵
查看>>
Remote Desktop Issues
查看>>
IIS7内建账号,应用程序池
查看>>
之字形打印矩阵
查看>>
我的2014-相对奢侈的生活
查看>>
zoj 2412 dfs 求连通分量的个数
查看>>
NLP自然语言处理学习笔记一(环境准备)
查看>>
李开复:中国第四波创业浪潮来临
查看>>
dl以及dt,dd,以及table的tr,th,td最清楚分析
查看>>
js 数据类型问题
查看>>
STL学习小结
查看>>
ORACLE数据库常用查询二
查看>>
VMware-workstation-full-11.0.0-2305329&VMware-player-7.0.0-2305329
查看>>
careercup-C和C++ 13.10
查看>>
Hadoop集群(第10期)_MapReduce与MySQL交互
查看>>
使用Java高速实现进度条
查看>>
【转】inittab文件
查看>>
如何利用【百度地图API】,制作房产酒店地图?(上)——制作自定义标注和自定义信息窗口...
查看>>
Firefox 之 应用小结
查看>>
[ThinkPHP]打开页面追踪调试
查看>>