删除Item时BindingList错误

时间:2014-10-06 13:23:41

标签: c# datagridview bindinglist

在从DataGridView连接的BindingList中删除entrys时遇到问题 首先是一些信息:

我有一个班级

public class DeliveryTimeList<T> : IEnumerable<T>, IDeliveryTimeObject where T : IDeliveryTimeData

实现此接口

public interface IDeliveryTimeObject : IListSource

我在DataGridView中使用此DeliveryTimeList。

我的类包含一个包含可见对象的列表

private List<T> _visibleList;

因为我实现了IListSource,所以我有这个方法

public IList GetList()
{
    BindingList<T> blt = new BindingList<T>(_visibleList);
    return blt;
}

现在从我的_visibleList中删除一个条目时,我得到一个System.IndexOutOfRangeException。 我无法弄清楚为什么会这样。不应该BindingList处理这个吗?

2 个答案:

答案 0 :(得分:1)

如果您尝试使用BindingList的RemoveAt(int index)方法,请确保index >= 0 && index < blt.Count否则会抛出该异常。

答案 1 :(得分:0)

我自己找到了答案。 _visibleList应该是BindingList。

这样会导致以下代码

private BindingList<T> _visibleList;

然后简单地返回它。

public IList GetList()
{
    return _visibleList;
}