DataGridView绑定List<t>对象,偶尔出现索引 |1 没有值|C/S开发框架</t>
作者:csframework|C/S框架网  发布日期:2023/02/07 18:15:11

只要一点击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修改时与数据源的自动更新。

C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇