当点击DataGridView时,IndexOutOfRangeException错误

本文关键字:IndexOutOfRangeException 错误 DataGridView | 更新日期: 2023-09-27 18:01:40

这个问题我已经纠结了好几个小时了。

结果如下:

当我的表单加载,我有一个DataGridView与一个空的List<Entity>作为数据源。

DataGridView.Datasource = null;
DataGridView.Datasource = entity_list;

首先,我将其设置为null,以便更新DataGridView。

然后,我可以将实体添加到该列表中,因此每次添加一个实体时都会执行这段代码。

我得到的问题是,在将一个实体添加到列表并更新数据源后,当我单击DataGridView时,我得到了IndexOutOfRangeException。这很奇怪。

当点击DataGridView时,IndexOutOfRangeException错误

出现问题是因为我可以向该列表添加实体,并且由于某种原因,如果数据源是空列表,则当您尝试向其添加一个实体时出现此异常。

因此,我使用的解决方案是,在做列表绑定之前询问,该列表是否至少有一个实体。

DataGridView.DataSource = null;
if (entity_list.Count() > 0)
    {
        DataGridView.DataSource = entity_list;
    }

就是这样!解决了!我读到使用BindingLists可以是解决这个问题的一种方法,但如果你像我一样使用List,我希望这能帮助你!