单击DataGridView时出现IndexOutOfRangeException错误

时间:2013-03-01 15:01:02

标签: c# winforms exception datagridview click

我一直在努力解决这个问题几个小时。

这就是:

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

所以,我使用的解决方案是在进行列表绑定之前询问,如果该列表至少有1个实体。

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

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