ObservableCollection и объект PropertyChanged

Если вы импортируете jar поддержки из другого проекта, вам нужно перейти на * Java Build Path * в разделе «упорядочить и экспортировать», щелкнуть на jar поддержки и поместить его поверх проекта перестроения зависимостей.

47
задан Wesley Bland 27 February 2014 в 22:18
поделиться

2 ответа

Как вы выяснили, не существует события уровня коллекции, которое указывает на то, что свойство элемента в коллекции изменилось. Обычно код, отвечающий за отображение данных, добавляет обработчик события PropertyChanged к каждому объекту, отображаемому в данный момент на экране.

4
ответ дан 26 November 2019 в 19:29
поделиться

Вот как вы можете присоединиться / отсоединиться к событию PropertyChanged каждого элемента.

ObservableCollection<INotifyPropertyChanged> items = new ObservableCollection<INotifyPropertyChanged>();
items.CollectionChanged += items_CollectionChanged;

static void items_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
    if (e.OldItems != null)
    {
        foreach (INotifyPropertyChanged item in e.OldItems)
            item.PropertyChanged -= item_PropertyChanged;
    }
    if (e.NewItems != null)
    {
        foreach (INotifyPropertyChanged item in e.NewItems)
            item.PropertyChanged += item_PropertyChanged;
    }
}

static void item_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    throw new NotImplementedException();
}
66
ответ дан 26 November 2019 в 19:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: