Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ObservableCollection & CollectionChanged / 9 сообщений из 9, страница 1 из 1
20.12.2012, 17:07
    #38087170
RealBlonde
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ObservableCollection & CollectionChanged
Почему CollectionChanged не выстреливает при изменении элемента коллекции?

Имеется ObservableCollection<Person>. Person реализует интерфейс INotifyPropertyChanged.
Хочется получать уведомления при добавлении удалении и ИЗМЕНЕНИИ элемента.
CollectionChanged на удаление/добавление выстреливает, на изменение - нет. Что я делаю неправильно?
...
Рейтинг: 0 / 0
20.12.2012, 17:19
    #38087187
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ObservableCollection & CollectionChanged
RealBlonde,

CollectionChanged и не должен выстреливать на изменение.
...
Рейтинг: 0 / 0
20.12.2012, 17:23
    #38087193
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ObservableCollection & CollectionChanged
RealBlondePerson реализует интерфейс INotifyPropertyChanged.
Вот Person и должен выстреливать на изменение, покажите как реализован интерфейс INotifyPropertyChanged
...
Рейтинг: 0 / 0
20.12.2012, 17:23
    #38087194
RealBlonde
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ObservableCollection & CollectionChanged
Nicky_N,

Как же так?!
В MSDN написано "Происходит, когда элемент добавляется, удаляется, изменяется или перемещается, а также при обновлении всего списка."
...
Рейтинг: 0 / 0
20.12.2012, 17:27
    #38087197
RealBlonde
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ObservableCollection & CollectionChanged
LR,

Код: c#
1.
2.
3.
4.
5.
6.
7.
        private void RaisePropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }

        public event PropertyChangedEventHandler PropertyChanged;
...
Рейтинг: 0 / 0
20.12.2012, 17:32
    #38087200
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ObservableCollection & CollectionChanged
RealBlonde,

тут :

It actually works correctly
(In response to the post about this event not firing when an item is changed)


Yes, it actually does fire when an item is changed. Changing an item does not mean changing a property on the item. It literally means changing or "replacing" the item. Example: collection[item] = newItem; (This causes the CollectionChanged event to be fired.)


If you're interested in properties changing on the item (for example, the "FirstName" propety of a Person object in your collection), you should be listening for change events on the item itself, not the ObservableCollection.
...
Рейтинг: 0 / 0
20.12.2012, 17:34
    #38087206
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ObservableCollection & CollectionChanged
RealBlonde,

и RaisePropertyChanged вызывается при изменении значений свойств, да? тогда все должно работать...

а читать лучше оригинал а не перевод
ObservableCollection<T> ClassRepresents a dynamic data collection that provides notifications when items get added, removed, or when the whole list is refreshed.
...
Note
To fully support transferring data values from binding source objects to binding targets, each object in your collection that supports bindable properties must implement an appropriate property changed notification mechanism such as the INotifyPropertyChanged interface.
...
Рейтинг: 0 / 0
20.12.2012, 17:36
    #38087209
RealBlonde
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ObservableCollection & CollectionChanged
Nicky_N,

Тоесть если я хочу отслеживать изменения Person'ов в коллекции, то мне надо каждому из них подцепить обработчик на событие PropertyChanged?
...
Рейтинг: 0 / 0
20.12.2012, 17:37
    #38087211
Nicky_N
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ObservableCollection & CollectionChanged
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ObservableCollection & CollectionChanged / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]