ObservableCollection类
https://blog.csdn.net/GongchuangSu/article/details/48832721
https://blog.csdn.net/hyman_c/article/details/50899321
聊作总结。
ObservableCollection< T >类表示一个动态数据集合,在添加项、移除项或刷新整个列表时,此集合将提供通知。
命名空间: System.Collections.ObjectModel
程序集:System.ObjectModel(在 System.ObjectModel.dll 中)
类型参数 T:集合中的元素类型
一、构造函数
- ObservableCollection< T >():初始化 ObservableCollection< T > 类的新实例。
- ObservableCollection< T >(IEnumerable< T >):初始化 ObservableCollection< T > 类的新实例,该类包含从指定集合中复制的元素。
- ObservableCollection< T >(List< T >):初始化 ObservableCollection< T > 类的新实例,该类包含从指定列表中复制的元素。
二、属性
- Count:获取 Collection< T > 中实际包含的元素数。
- Item:获取或设置位于指定索引处的元素。
- 其它···
三、方法
- Add:将对象添加到 Collection< T > 的结尾处。
- Clear:从 Collection< T > 中移除所有元素。
- Contains:确定某元素是否在 Collection< T > 中。
- IndexOf:搜索指定的对象,并返回整个 Collection 中第一个匹配项的从零开始的索引。
- Insert:将元素插入 Collection< T > 的指定索引处。
- Remove:从 Collection 中移除特定对象的第一个匹配项。
- RemoveAt:移除 Collection 的指定索引处的元素。
- ToString:返回表示当前对象的字符串。
- 其它···
四、事件
CollectionChanged:在添加、移除、更改或移动项或者在刷新整个列表时发生。
五、说明
在许多情况下,所使用的数据是对象的集合。 例如,数据绑定中的一个常见方案是使用 ItemsControl(如 ListBox、ListView 或 TreeView)来显示记录的集合。ObservableCollection<T>就是一个主要用在WPF的控件和数据源的绑定中的集合,例如,
在xmal文件中,放置一个ListBox控件,名字叫做UserGroupListBox,ItemsSource设置如下:
<ListBox Name="UserGroupListBox" ItemsSource="{Binding Path=string,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" Height="214" HorizontalAlignment="Left" Margin="6,64,0,0" VerticalAlignment="Top" Width="173" Loaded="UserGroupListBox_Loaded" SelectionChanged="UserGroupListBox_SelectionChanged" />
对应的cs文件中:
ObservableCollection<string> strlist=new ObservableCollection<string>();
....
UserGroupListBox.ItemsSource=strlist;
这里用ObservableCollection<T>,当strlist发生变化时,UserGroupListBox的界面也会实时更新,而是用List<T>等其他容器是就没有这种效果。
可以枚举实现 IEnumerable 接口的任何集合。 但是,若要设置动态绑定,以便集合中的插入或删除操作可以自动更新 UI,则该集合必须实现 INotifyCollectionChanged 接口。 此接口公开 CollectionChanged 事件,只要基础集合发生更改,都应该引发该事件。
WPF 提供 ObservableCollection 类,它是实现 INotifyCollectionChanged 接口的数据集合的内置实现。
为了完全支持将绑定源对象中的数据值传送到绑定目标,在支持可绑定属性的集合中的每个对象都必须实现适当的属性更改通知机制,如 INotifyPropertyChanged 接口。
ObservableCollection类的更多相关文章
- ObservableCollection 类
假设您正在创建 Windows 窗体应用程序,并且已将 DataGridView 控件绑定到标准 List(Of Customer) 数据结构.您希望能够使网格中的项目与基础数据源中的值保持同步.也就 ...
- ObservableCollection
1)可以使绑定控件与基础数据源保持同步2)还可以在您添加.删除.移动.刷新或替换集合中的项目时引发 CollectionChanged 事件3)还可以在您的窗口以外的代码修改基础数据时做出反应4)相互 ...
- 属性更改通知(INotifyPropertyChanged)——针对ObservableCollection
问题 在开发webform中,wpf中的ObservableCollection<T>,MSDN中说,在添加项,移除项时此集合通知控件,我们知道对一个集合的操作是CURD但是恰恰没有Upd ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- WPF 数据绑定Binding
什么是数据绑定? Windows Presentation Foundation (WPF) 数据绑定为应用程序提供了一种简单而一致的方法来显示数据以及与数据交互. 通过数据绑定,您可以对两个不同对象 ...
- silverlight简单数据绑定3
3种数据绑定模式 OneTime(一次绑定) OneWay(单项绑定) TwoWay(双向绑定) OneTime:仅在数据绑定创建时使用数据源更新目标. 列子: 第一步,创建数据源对象让Person ...
- 调用Ria Service中方法的各种方式
前端界面后台: using System; using System.Collections.Generic; using System.Linq; using System.Net; using S ...
- wp7学习笔记
1.xap:最终是压缩包:最终部署有系统控制,防止流亡软件:放到固有位置productid;有的文件放在.dll中或直接放入目录下:控制有生成操作:content,内容,content效率更高不用从. ...
- WPF学习之数据绑定
WPF中的数据绑定提供了很强大的功能.与普通的WinForm程序相比,其绑定功能为我们提供了很多便利,例如Binding对象的自动通知/刷新,Converter,Validation Rules,Tw ...
随机推荐
- I-country
I-country 在\(n\times m\)的网格图中,给出每个格子的权值,寻找有k个格子的凸联通块,使包含的权值最大,\(N,M≤15,K≤225\). 解 我们首先要知道凸联通块的定义 从任意 ...
- CF627A Xor Equation
题意:a+b=s,a^b=x(异或).问有多少有序Z+对(a,b)满足条件. 标程: #include<cstdio> using namespace std; typedef long ...
- 2016.10.4初中部下午NOIP普及组比赛总结
2016.10.4初中部下午NOIP普及组比赛总结 这次的题有些水,只是第四题有点坑. 题目: 比赛:AC+0+AC+50=250 改题:AC+AC+AC+50=350 一.Bill 满地都是水 题目 ...
- vue cnpm run dev 报错,解决方法
执行到 $ cnpm run dev 报如下错,但是实际上 我执行 npm -v 是5.0.4 其原因是nodejs里的版本不对,解决方法
- PAT甲级——A1003Emergency
As an emergency rescue team leader of a city, you are given a special map of your country. The map s ...
- json-lib解决死循环
1.添加lazy=“false”(两个xml文件中都要添加) 2.设置过滤器
- 上传本地项目到码云(gitee)
1.码云上创建一个项目比如zhirong 2.本地创建一个文件夹F:\workspace\zhirong-items,进入zhirong-items打开git bash 3.执行git init ,这 ...
- springboot自己实现mysql主从数据切换机制
在很多公司都是实现了数据的读写分离,所谓的读写分离,就是写的时候从主库 ,然后从库就会从主库中复制过去,这样就会形成了数据的读写分离,然而在很多场景是适用的,那么我们怎么做呢,可以利用aop 加注解的 ...
- PHP SSH2 不支持 IdentityFile
有的情况下 我们会用到 类似命令行 sftp -o IdentityFile=.ssh/identity username@host方式 登陆, 想用php 操作, 但是 php 现在看是不支持的, ...
- NOIP2017普及组初赛总结
去年,我普及组复赛翻车,居然没进一等奖,于是,今年,我只能再做一次普及组. 这次初赛我93.5分,居然是中山市第一--(中山市太弱了?) 其实我觉得我没考好. 比赛时第二题(计算机存储数据的基本单位是 ...