C#集合之可观察集合的用法
作者:Ruby_Lu 发布时间:2022-02-16 13:43:13
标签:C#,集合,可观察
如果需要集合中的元素何时删除或添加的信息,可以使用ObservableCollection<T>类。这个类是为WPF定义的,这样UI就可以得知集合的变化。这个类在程序集WindowsBase中定义,需要引用这个程序集。
ObservableCollection<T>类派生自Collection<T>基类,该基类可用于创建自定义集合,并在内部使用List<T>类。重写基类的虚方法SetItem()和RemoveItem(),以触发CollectionChanged事件。
static void Main()
{
var data = new ObservableCollection<string>();
data.CollectionChanged += Data_CollectionChanged;
data.Add("One");
data.Add("Two");
data.Insert(1, "Three");
data.Remove("One");
}
static void Data_CollectionChanged(object sender, System.Collections.Specialized.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();
}
来源:https://www.cnblogs.com/afei-24/p/6835420.html


猜你喜欢
- 前言相信很多Java开发都遇到过一个面试题:Resource和Autowired的区别是什么?这个问题的答案相信基本都清楚,但是这两者在Sp
- 导言目前截屏的方法很多,root不适用,要么其他方法就是有局限性,而其中官方给出的方案最好—MediaProjection介绍Android
- java7增强的try语句关闭资源传统的关闭资源方式import java.io.FileInputStream;import java.i
- springmvc 使用map接收参数开发过程中有时候我们并不知道前端都会传递哪些参数给到后端. 为方便扩展接口功能, 在请求参数不改变的情
- 本文实例讲述了Java线程组与未处理异常。分享给大家供大家参考,具体如下:一 点睛从JDK1.5开始,Java加强了线程的异常处理,如果线程
- 如论实施敏捷的团队,或者实施 DevOps 的团队,通过自动化测试提高测试效率和软件质量都是其共同的选择。UI 自动化测试是自动化化测试当中
- 编程语言的流行程度、发展前景、就业市场这些一直都是程序员们非常关注的话题,需求排名是程序员们关注学习的风向标,毕竟是市场经济,学以致用,如果
- 提示:java.util.zipoutputstream
- 不说废话了,进入我们今天的主题吧。先贴上前面内容的地址:Android手势ImageView三部曲(一)Android手势ImageView
- Jetty是一个轻量级的高度可扩展的基于 java的web服务器和servlet引擎。下面是 使用 Intellij IDEA 的maven
- Java程序设计 图形用户界面 【二】基本容器JFrameJFrame类的常用操作方法方法作用public JFrame() throws
- thymeleaf介绍简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP
- 一、简介此游戏是《2D 赛车》的”魔改版“——2.5D 双人
- 本文实例为大家分享了Android实现单选按钮的具体代码,供大家参考,具体内容如下单选按钮在默认情况下,单选按钮显示为一个圆形图标,可以在图
- 属性(Attribute)是C#程序设计中非常重要的一个技术,应用范围广泛,用法灵活多变。本文就以实例形式分析了C#中属性的应用。具体入戏:
- 网上很多人对设置控件的位置都使用view.setPadding(left, top, right, bottom) ,其实这玩意很差劲,它是
- 一.背景介绍:给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffma
- 本文实例为大家分享了Android自定义View实现九宫格图形解锁的具体代码,供大家参考,具体内容如下效果:代码:package com.e
- 1、字符串数字之间的转换(1)string --> char * string str("OK");
- Q:使用过滤器、 * 与切片实现每个请求耗时的统计,并比较三者的区别与联系过滤器Filter 过滤器概念Filter是J2E中来的,可以看做