Список привязок и элементы управления пользовательского интерфейса, не обновляются при редактировании - PullRequest
2 голосов
/ 05 ноября 2011

Я связываю BindingList двумя способами со списком. Список привязок содержит ряд изображений, которые, по-видимому, обновляют список только в том случае, если элементы добавлены или удалены из списка привязок. Как я могу сделать так, чтобы связующий список также вызывал событие listaged при изменении элемента?

РЕДАКТИРОВАТЬ: я нахожу проблему, с которой я сталкиваюсь, это то, что свойство объекта не изменяется, а базовый объект.

BindingList<ImageSource>();

Однако это не сработает, если я сделаю это:

BindingList<Image>();

И затем установите для привязки путь к Image.Source, он будет корректно обновляться, и это потому, что свойство Image изменилось, но в случае первого примера изменился только прямой элемент в списке. Так как мне получить то же поведение, что и во втором примере?

ЗАКЛЮЧИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: Кажется, что использование ObservableCollection вместо BindingList решает эту проблему. У меня сложилось впечатление, что они одинаковы в уведомлении об изменениях в коллекции. Полный ответ ниже

Ответы [ 2 ]

2 голосов
/ 05 ноября 2011

Список вызывает это событие, но только в том случае, если нижележащие элементы предоставляют соответствующие уведомления через INotifyPropertyChanged.

1 голос
/ 06 ноября 2011

BindingList отличается от ObservableCollection тем, что BindingList не уведомляет об изменении своих прямых элементов (кроме случаев, когда элементы добавляются или удаляются из коллекции).ObservableCollection, однако, реализует интерфейсы INotifyCollectionChanged и INotifyPropertyChanged.Это означает, что о любых изменениях в прямых элементах ObservableCollection сообщается в пользовательском интерфейсе.

Если вы используете привязки для направления элементов и вам необходимо обновить элементы, а не свойства этих элементов, вам, вероятно, придется использоватьObservableCollection.Другим решением было бы извлечь из BindingList и реализовать INotifyCollectionChanged.

Я не эксперт, но это то, что я собрал за последний час, если у кого-то есть что-то, чтобы добавить или исправить, пожалуйста, дайте мне знать.

...