2014-10-06 3 views
1

У меня есть проблема, когда удаление entrys из BindingList в связи с DataGridView Здесь некоторую информацию первого:BindingList ошибка при удалении Пункт

У меня есть класс

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

, который реализует этот интерфейс

public interface IDeliveryTimeObject : IListSource 

Я использую этот DeliveryTimeList в DataGridView.

Мой класс содержит список с видимыми объектами

private List<T> _visibleList; 

Потому что я реализовать IListSource у меня есть этот метод

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

При Теперь удаление записи из моего _visibleList я получаю System.IndexOutOfRangeException. Я не могу понять, почему это происходит. Должен ли BindingList справиться с этим?

ответ

1

Если вы попытаетесь использовать метод BindingList RemoveAt(int index), убедитесь, что index >= 0 && index < blt.Count в противном случае он выкинет это исключение.

+0

это была не ошибка, но я тоже об этом забыл. благодаря – Bongo

0

Я сам нашел ответ. _visibleList должен быть BindingList.

Так что приведет к следующему Кодекса

private BindingList<T> _visibleList; 

А потом просто вернуть его.

public IList GetList() 
{ 
    return _visibleList; 
}