zoukankan      html  css  js  c++  java
  • 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)
                {
                }
            }
        }
    
    }
    




    运行结果:


    勉強心を持てば、生活は虚しくない!
  • 相关阅读:
    如何基于Azure平台实现MySQL HA(方法论篇)
    如何对Azure磁盘性能进行测试
    Azure底层架构的初步分析
    聊聊Azure的安全性
    关于Azure带宽的测试
    JavaScript 优化
    SQL时间段查询
    win7+64位+Oracle+11g+64位下使用PLSQL+Developer+的解决办法
    putty 使用方法,中文教程
    怎样才能专心工作
  • 原文地址:https://www.cnblogs.com/beta2013/p/3377304.html
Copyright © 2011-2022 走看看