AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
作者:[jiankunking](http://blog.csdn.net/jiankunking) 出处:http://blog.csdn.net/jiankunking 今天听到同事处理数据结构的时候特意处理为了 BindingList<T>,据说可以直接绑定到Dev GridView上,于是测试了一下: 1、在Dev GridView中新增三列,三列的FieldName分别对应与FormItem类对应:ItemKey、Name、Enable 具体类代码如下: ~~~ public class FormItem { /// <summary> /// 标识 /// </summary> public string ItemKey { get; set; } /// <summary> /// 名称 /// </summary> public string Name { get; set; } /// <summary> /// 是否可用 /// </summary> public bool Enable { get; set; } } ~~~ 3、在Form窗体上增加一个Buntton按钮事件,并添加Click事件,在Click事件中填充List<T>、BindingList <T>、BindingSource,并进行绑定测试: ~~~ BindingList<FormItem> itemsBindingList = new BindingList<FormItem>(); List<FormItem> itemsList = new List<FormItem>(); BindingSource bs = new BindingSource(); private void simpleButton1_Click(object sender, EventArgs e) { for (int i = 0; i < 10; i++) { FormItem fi = new FormItem(); fi.ItemKey = i.ToString(); fi.Name = Guid.NewGuid().ToString(); if (i % 2 == 0) { fi.Enable = true; } else { fi.Enable = false; } itemsBindingList.Add(fi); itemsList.Add(fi); bs.Add(fi); } //this.gridControl1.DataSource = itemsBindingList; //this.gridControl1.DataSource = itemsList; this.gridControl1.DataSource = bs; } ~~~ 4、通过测试发现List<T>、BindingList <T>、BindingSource均可以绑定到Dev GridView上  5、用过Dev GridView的朋友应该知道,给Dev GridView绑定DataTable后,在GridView上的修改会同步到到DataTable上,那么问题来了Dev GridView 绑定List<T>、BindingList <T>、BindingSource会不会同步呢? 于是添加GridView的CellValueChanged事件,在该事件中监视变量itemsBindingList、itemsList、bs,可以发现修改也是同步的。 小注: BindingSource第一次用,有不对的地方,还请指教!       demo下载:[点击打开链接](http://download.csdn.net/detail/xunzaosiyecao/8997237) 数据源可以是实现下列接口之一的任何类型: - [IList](http://msdn.microsoft.com/zh-cn/library/system.collections.ilist(VS.80).aspx) 接口,包括一维数组。List<T>等! - [IListSource](http://msdn.microsoft.com/zh-cn/library/system.componentmodel.ilistsource(VS.80).aspx) 接口,例如,[DataTable](http://msdn.microsoft.com/zh-cn/library/system.data.datatable(VS.80).aspx) 和 [DataSet](http://msdn.microsoft.com/zh-cn/library/system.data.dataset(VS.80).aspx) 类。 - [IBindingList](http://msdn.microsoft.com/zh-cn/library/system.componentmodel.ibindinglist(VS.80).aspx) 接口,例如,[BindingList](http://msdn.microsoft.com/zh-cn/library/ms132679(VS.80).aspx) 类。 - [IBindingListView](http://msdn.microsoft.com/zh-cn/library/system.componentmodel.ibindinglistview(VS.80).aspx) 接口,例如,[BindingSource](http://msdn.microsoft.com/zh-cn/library/system.windows.forms.bindingsource(VS.80).aspx) 类。