我一直在努力解决这个问题几个小时。
这就是:
当我的表单加载时,我有一个DataGridView,其中空List<Entity>
为数据源。
DataGridView.Datasource = null;
DataGridView.Datasource = entity_list;
首先,我将其设置为null以更新DataGridView。
然后,我可以将实体添加到该列表中,这样每次添加一段代码时都会执行。
我得到的问题是,在向列表中添加一个实体并更新DataSource之后,当我单击DataGridView时,我得到了IndexOutOfRangeException
。这很奇怪。
答案 0 :(得分:2)
问题出现是因为我可以向该List添加实体,并且由于某种原因,如果DataSource是一个空List,当您尝试向其添加一个实体时会出现此异常。
所以,我使用的解决方案是在进行列表绑定之前询问,如果该列表至少有1个实体。
DataGridView.DataSource = null;
if (entity_list.Count() > 0)
{
DataGridView.DataSource = entity_list;
}
就是这样!解决了!我读到使用BindingLists可以解决这个问题,但如果你像我一样使用List,我希望这可以帮助你!