可观察的集合---ObservableCollection<T>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.ObjectModel;
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            //可观察的集合
            ObservableCollection<string> oc = new ObservableCollection<string>();
            oc.CollectionChanged+=oc_CollectionChanged;
            oc.Add("a");
            oc.Add("b");
            oc.Insert(2, "c");
            oc.Remove("c");
            foreach (var item in oc)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();

            //输出:
            //操作:Add
            //被添加的索引:0
            //操作:Add
            //被添加的索引:1
            //操作:Add
            //被添加的索引:2
            //操作:Remove
            //被添加的索引:2
            //a
            //b

        }
        private static void oc_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            Console.WriteLine("操作:{0}", e.Action.ToString());//引起该事件的操作
            if (e.NewItems != null)//添加
            {
                Console.WriteLine("被添加的索引:{0}", e.NewStartingIndex.ToString());
            }
            if (e.OldItems != null)//删除
            {
                Console.WriteLine("被删除的索引:{0}", e.OldStartingIndex.ToString());
            }
        }
    }
}
时间: 2024-10-16 09:34:00

可观察的集合---ObservableCollection<T>的相关文章

C#编程(五十六)----------可观察的集合ObservableCollection

原文链接: http://blog.csdn.net/shanyongxu/article/details/47080685 可观察的集合 如果需要集合中的元素核实删除或添加的信息,就可以使用ObservableCollection<T>类. ObservableCollection<T>类表示一个动态数据集合,在添加项,移除项或刷新整个列表时,刺激和将提供通知. 命名空间:System.Collections.ObjectModle 语法:public class Observa

C#高级编程五十六天----可观察的集合ObservableCollection

可观察的集合 如果需要集合中的元素核实删除或添加的信息,就可以使用ObservableCollection<T>类. ObservableCollection<T>类表示一个动态数据集合,在添加项,移除项或刷新整个列表时,刺激和将提供通知. 命名空间:System.Collections.ObjectModle 语法:public class ObservableCollection<T>:Collection<T>,INotifyCollectionCha

C#集合之可观察的集合

如果需要集合中的元素何时删除或添加的信息,可以使用ObservableCollection<T>类.这个类是为WPF定义的,这样UI就可以得知集合的变化.这个类在程序集WindowsBase中定义,需要引用这个程序集. ObservableCollection<T>类派生自Collection<T>基类,该基类可用于创建自定义集合,并在内部使用List<T>类.重写基类的虚方法SetItem()和RemoveItem(),以触发CollectionChang

C#之再议数组和集合

1.数组 1.1简单数组 1.2 多维数组 1.3锯齿数组 1.4Array数组 1.5作为参数的数组 1.6枚举 1.7结构 以上部分可参考 http://www.cnblogs.com/ztb123/articles/4195864.html 1.8元组 数组合并了相同类型的对象,而元组合并了不同类型的对象.Net 4定义了 8个泛型 Tuple类 和一个静态 Tuple类 ,它们用作元组的工厂. 这里的不同泛型 Tuple类支持不同数量的元素. 例如,Tuple<T1> 包含-个元素,T

【读书笔记】C#高级编程 第十章 集合

(一)概述 数组的大小是固定的.如果元素个数是动态的,就应使用集合类. List<T>是与数组相当的集合类.还有其它类型的集合:队列.栈.链表.字典和集. (二)列表 1.创建列表 调用默认的构造函数,就可以创建列表对象.在泛型类List<T>中,必须为声明为列表的值指定类型.使用默认构造函数创建一个空列表.元素添加到列表后,列表的容量会扩大,每次添加元素达到容量上限后,容量将重新设置为原来的2倍. 例子: List<string> strList = new List

C#集合命名空间、接口及类型

一.C#集合的命名空间 1.System.Collections                            //非泛型集合 2.System.Collections.Generic               //泛型集合 3.System.Collections.Specialized         //特定集合 4.System.Collections.Concurrent         //支持并发的线程安全集合 5.System.Collections.ObjectMod

02.C#集合

1.集合接口与集合类型 (1)集合的命名空间 大多数集合类都可以在System.Collections和System.Collections.Generic名称空间中找到.泛型集合位于System.Collections.Generic名称空间中:专用于特定类型的集合类位于System.Collections.Specialized名称空间中:线程安全的集合位于System.Collections.Concurrent名称空间中. (2)集合接口介绍 1.IEnumerable与IEnumera

C#学习笔记 ----集合

List<T>是与数组相当的集合类.其他类型的集合:队列.栈.链表和字典. IEnumerable<T>如果将foreach语句用于集合,就需要IEnumerable接口.这个接口定义了方法GetEnumerator(),它返回一个实现了IEnumerator接口的枚举. ICollection<T>接口由泛型集合类实现.使用这个接口可以获得集合中的元素个数,把集合复制到数组中,还可以从集合中添加和删除元素. IList<T>接口用于可通过位置访问其中的元素

属性通知之ObservableCollection

单个属性是如何去通知,在上一章已经介绍过了,那么集合如何做到属性通知呢?这里要介绍ObservableCollection<T>,字面意思就是用于观察的集合. msdn上给出的定义是:表示一个动态数据集合,在添加项.移除项或刷新整个列表时,此集合将提供通知. 实现了接口INotifyCollectionChanged, INotifyPropertyChanged用于属性更新. 两个同样的集合,一个更新的同时,另外一个也同时更新,关于增删,可以自己尝试. 源码