У меня есть список в WPF, который привязан к ObservableCollection с использованием свойства ItemSource. Это отлично работает, правильные элементы отображаются.
В списке (который содержит список имен изображений) имеется обработчик события события SelectionChanged, который обновляет источник элемента управления изображением путем к пути к выбранному изображению (фактически давая предварительный просмотр изображения).
У меня есть следующий код для удаления элемента из списка, в случае нажатия кнопки:
if (lstLocal.SelectedIndex > -1)
{
localImages.RemoveAt(lstLocal.SelectedIndex);
}
localImages - ObservableCollection
, а lstLocal - ListBox
.
Однако, когда я удаляю выбранный элемент, это вызывает событие SelectionChanged. Мой обработчик события SelectionChanged использует свойство SelectedIndex в списке. Я получаю исключение Index was out of range. Must be non-negative and less than the size of the collection.
, так что я предполагаю, что удаление элемента приводит к тому, что для SelectedIndex устанавливается значение, подобное нулю (или отрицательному числу)?
Есть ли способ обойти эту проблему? Я предполагаю, что есть лучший способ удалить элементы, или мне нужна какая-то проверка моего обработчика SelectionChanged?