ObservableCollection DataGrid - PullRequest
       22

ObservableCollection DataGrid

1 голос
/ 08 марта 2010

Я связал ObservableCollection с источником данных dataGrid.

collectionChangedEvent наблюдаемой коллекции вызывается только тогда, когда мы добавляем, удаляем, удаляем. Но не стреляем, когда мы обновляем запись.

как запустить событие для обновления тоже?

Ответы [ 2 ]

5 голосов
/ 09 марта 2010

Если вы хотите получать уведомления об изменении элемента (т.е. вы хотите подписаться на это событие), вам не повезло с ObservableCollection<T>, потому что эта коллекция только запускает CollectionChangedEvent.
Действительно, если вы реализуете INotifyPropertyChanged, вы увидите изменения в элементах в представлении (WPF делает это автоматически), но если вам нужно выполнить ручные действия при изменении элемента, вы можете использовать BindingList<T>.

Именно для этого сценария я развернул пользовательский BindableCollection<T>, который реализует ObservableCollection<T> и добавляет OnItemChangedEvent. При необходимости я могу предоставить пример кода ...

3 голосов
/ 08 марта 2010

Коллекция не знает, когда запись была изменена. Чтобы получить уведомление, когда это происходит, запись должна реализовывать INotifyPropertyChanged

...