集合(9-可观察的集合 ObservableCollection)
来源:互联网 发布:c 低级编程 编辑:程序博客网 时间:2024/06/05 04:36
特征
何为可观察的集合?
如果需要集合元素添加和删除的信息,就可以使用ObservableCollection,这个类在WindowsBase程序集定义,这个类是为WPF定义的,如集合发生变化能通知到UI
示例
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Collections.ObjectModel;using System.Collections.Specialized;namespace ConsoleApplication34{ class Program { static void Main(string[] args) { ObservableCollection<string> obc = new ObservableCollection<string>(); obc.CollectionChanged+=obc_CollectionChanged; obc.Add("One"); obc.Add("Two"); obc.Insert(1,"Three"); obc.Remove("Three"); } public static void obc_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { Console.WriteLine("action:{0}",e.Action.ToString()); if (e.OldItems!=null) { Console.WriteLine("starting index for old item(s):{0}",e.OldStartingIndex); Console.WriteLine("old item(s):"); foreach (var item in e.OldItems) { Console.WriteLine(item); } } if (e.NewItems != null) { Console.WriteLine("starting index for new item(s):{0}", e.NewStartingIndex); Console.WriteLine("new item(s):"); foreach (var item in e.NewItems) { Console.WriteLine(item); } } Console.WriteLine(); } }}
输出如图:
示例剖析
- 对obc加入CollectionChanged事件obc_CollectionChanged
- 事件属于NotifyCollectionChangedEventHandler的委托类型
- 该委托声明格式为
public delegate void NotifyCollectionChangedEventHandler(object sender, NotifyCollectionChangedEventArgs e);
- 根据格式定义方法obc_CollectionChanged
- NotifyCollectionChangedEventArgs 事件参数如图
- 参数e中Action属性是一个枚举类型NotifyCollectionChangedAction
- 查看各个属性的注释得知,OldItems 获取受 Replace、Remove或 Move 操作影响的各项的列表。
- 其它不 一 一列举
0 0
- 集合(9-可观察的集合 ObservableCollection)
- C#高级编程五十六天----可观察的集合ObservableCollection
- ObservableCollection集合进行排序
- WPF ObservableCollection中的动态集合
- 深度观察集合
- TreeSet集合,可排序的集合
- 性能观察: Trove 集合类
- 性能观察: Trove 集合类
- 在WPF中使用ObservableCollection集合操作TreeView节点
- 【3】性能观察:Trove集合类
- 【3】性能观察:Trove集合类
- 使用可观察的提供者
- 集合框架(集合的继承体系结构)
- JAVA 集合 的 集合
- E是可编辑集合
- 建立可对任意属性排序的对象集合
- 建立可对任意属性排序的对象集合
- Unity3d之MonoBehaviour的可重写函数集合
- 生产订单获取长文本
- [hackerrank Value of all Permutations]
- python函数
- 扩展码再思考
- 游标
- 集合(9-可观察的集合 ObservableCollection)
- 1391.Number Steps
- 高CPU调试(二)
- Java多线程学习
- 原始粉丝积累秘籍【学员必看】
- 常用插件GsonFormat---json数据格式
- c#实现cmd功能
- C#判断某元素是否存在数组中
- [51nod1301]集合异或和