DataGridView绑定List<T>对象,偶尔出现索引 -1 没有值
只要一点击DataGridView控件,马上就会跳出System.IndexOutOfRangeException异常,具体内容如下:
未处理 System.IndexOutOfRangeException Message="索引 -1 没有值。"
解决方案
使用 BindingSource 对象绑定 DataGridView 控件的数据源。
C# 全选
private void DoBindingDetail(object source)
{
BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = source;
gvDetail.DataSource = bindingSource;
}
在向DataGridView绑定Ilist<T>类型的对象是,如果对象的成员为0,那么就会出现此问题。而且即使重新绑定DataGridView的数据源,也会继续存在此问题,解决的方法就是在向DataGridView绑定Ilist<T>对象是,要保证其中至少有一个成员,否则宁可不绑定(虽然不是最完美的解决方法)。其实最好的方法,是用BindingList<T>对象代替Ilist<T>对象作为DataGridView的数据源,即可彻底解决此问题,而且能实现DataGridView修改时与数据源的自动更新。
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网