您的位置:首页 > 其它

Dev GridView 绑定List<T>、BindingList <T>、BindingSource

2015-08-12 19:27 411 查看
作者: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下载:点击打开链接

 数据源可以是实现下列接口之一的任何类型:
IList 接口,包括一维数组。List<T>等!
IListSource 接口,例如,DataTable 和 DataSet 类。
IBindingList 接口,例如,BindingList 类。
IBindingListView 接口,例如,BindingSource 类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息