本文主要是介绍加强版bindinglist_BindingListT的Add方法、AddNew方法与AddingNew事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
代码示例:
using System;
using System.ComponentModel;
namespace Test
{
class Program
{
static void Main()
{
var list = new BindingList();
list.AddingNew += (s, e) =>
{
//使用BindingList.AddNew方法加入自定义新项时得在这里加,否则会调用T的默认构造方法自动创建一个。
e.NewObject = new Item(0);
Console.WriteLine("AddingNew");
};
list.ListChanged += (s, e) =>
{
Console.WriteLine("ListChanged:" + e.ListChangedType);
};
//只有BindingList.AddNew方法才会触发AddingNew事件,同时配置BindingList.AddNew(丢弃新增项)与BindingList.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也实现了Collection接口,Collection.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)
{
}
}
}
}
运行结果:
这篇关于加强版bindinglist_BindingListT的Add方法、AddNew方法与AddingNew事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!