Обновить WPF ListBoxItem без ListBox.Items.Refresh ()? - PullRequest
2 голосов
/ 28 октября 2010

У меня есть DataTemplate, который я использую для отображения деталей из класса в ListBox. У DataTemplate есть EventTrigger, прикрепленное к событию Loaded элемента, которое использует DoubleAnimation для исчезновения каждого элемента в поле зрения, когда они добавляются к ObservableCollection, который связан с ListBox. Он также имеет DataTrigger, который использует DoubleAnimation и ColorAnimation (RepeatBehavior="Forever") для анимации эффекта свечения при определенных условиях. Пока все хорошо.

Приложение требует, чтобы свойства элемента обновлялись каждые несколько секунд. Проблема возникает после обновления свойства элемента в ListBox, при вызове ListBox.Items.Refresh(). Это сбрасывает анимацию, так что каждый элемент исчезает, и эффект свечения перезапускается каждые несколько секунд. Значения свойства элемента не обновляются, если я не вызову Refresh. У меня вопрос, есть ли способ обновить каждый элемент по отдельности или как-то обойти эту проблему?

1 Ответ

5 голосов
/ 28 октября 2010

Убедитесь, что отдельные элементы в ObservableCollection<T> агрегате INotifyPropertyChanged . Пока они это делают, привязки должны обновляться автоматически, не требуя явного обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...