作者:[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) 类。
- 前言
- DEV Gridcontrol 多选
- 关于同步(字典)功能实现的相关积累
- 怎么将输入框控件中的值添加到DataSet中?
- 怎么获得当前行(gridcontrol中)在数据库中某列的值?
- DEV ComboBoxEdit 控件
- Dev Gridcontrol “互联”界面的实现
- DEV ComboBoxEdit控件
- GridView控件 System.NullReferenceException
- Ds中有数据,但Gridview上未显示的原因小结
- VS2010 dev控件 拖拽不到Winfrom上的原因
- DEV Xtratabcontrol中的Xtratabpage
- 在Gridcontrol上选择某一列,并将其删除
- Dev RadioGroup控件:实现单选效果
- Dev Gridcontrol 设置当前行字体
- 控件repositoryItemTextEdit输入不上
- 在GridControl上显示与表A某字段对应的表B字段
- Dev中的repositoryItemButtonEdit控件,双击没反应
- 隐藏GridControl的“Drag a column header here to group by that column”
- DEV GridView显示行号
- DEV Gridcontrol 查询得到0条记录时显示自定义的字符提示/显示
- DateEdit控件时间格式转换
- Dev BarManager控件要通过Remove成员来释放内存
- Dev 显式注册的EvenHandler要显式注销以避免内存泄漏
- Dev 控件绑定的数据源批量操作应避免自动刷新
- Dev Gridcontrl随便单击,都会调用某个方法的原因
- DEV Gridcontrol 格式化显示数据
- DEV gridview 捕获行双击事件
- Dev gridcontrol 捕获按键事件
- DEV GridControl 导出到Excel
- DevExpress GridControl复合表头(多行表头)设置
- Dev gridcontrol获取选定行,指定列单元格的内容
- Dev GridControl 小结
- DevExpress TreeList控件的复选框
- Dev Treelist控件显示行号
- Dev 获取鼠标所在行的索引值
- DevExpress gridview下拉框repositoryItemComboBox的使用
- DevExpress.XtraEditors.DataNavigator用法
- dev gridcontrol 单选框效果
- dev 根据datatable动态生成gridview
- Dev BarManager用法
- Dev GridView RowCellClick事件与MouseDown事件
- Dev 控件中的combox禁止输入
- 在DevExpress GridControl的一列中显示图片
- Dev GridControl 单元格输入数据的验证方法
- dev treelist 常用用法小结
- DevExpress GridView 添加和设置右键菜单
- Dev GridView 绑定List&lt;T&gt;、BindingList &lt;T&gt;、BindingSource
- Dev RadioGroup 用法(项横排显示、项选中)
- DevExpress XtraTreeList的复选框 禁用
