• BindingList<T>的Add方法、AddNew方法与AddingNew事件


    代码示例:

    using System;
    using System.ComponentModel;
    
    namespace Test
    {
        class Program
        {
            static void Main()
            {
                var list = new BindingList<Item>();
                list.AddingNew += (s, e) =>
                                      {
                                          //使用BindingList<T>.AddNew方法加入自定义新项时得在这里加,否则会调用T的默认构造方法自动创建一个。
                                          e.NewObject = new Item(0);
                                          Console.WriteLine("AddingNew");
                                      };
                list.ListChanged += (s, e) =>
                                        {
                                            Console.WriteLine("ListChanged:" + e.ListChangedType);
                                        };
    
                //只有BindingList<T>.AddNew方法才会触发AddingNew事件,同时配置BindingList<T>.AddNew(丢弃新增项)与BindingList<T>.EndNew方法(提交新增项)
                {
                    var item = list.AddNew();
    
                    var index = list.IndexOf(item);
                    Console.WriteLine("count of list: " + list.Count);//结果为:1
                    list.CancelNew(index);
                    Console.WriteLine("count of list: " + list.Count);//结果为:0
                    list.EndNew(index);
                    Console.WriteLine("count of list: " + list.Count);//结果为:0
                }
    
                //BindingList<T>也实现了Collection<T>接口,Collection<T>.Add与Insert 方法只会引发ListChanged事件
                {
                    var item = new Item(0);
                    list.Add(item);
                }
    
                Console.WriteLine("count of list: " + list.Count);//结果为:1
                Console.ReadKey();
            }
            class Item
            {
                public Item(int a)
                {
                }
            }
        }
    
    }
    




    运行结果:


    勉強心を持てば、生活は虚しくない!
  • 相关阅读:
    c-复习基础
    java-根据起止IP获取IP段集合
    java-随机数
    java-数组
    TypeSafe Config使用
    日志手段
    git 常用命令
    看门狗
    容器HashSet原理(学习)
    容器Vector原理(学习)
  • 原文地址:https://www.cnblogs.com/beta2013/p/3377304.html
Copyright © 2020-2023  润新知