WPF ListView.CurrentChanged слишком быстрый для привязки

Мое дело:

  • MVVM
  • ListView + Подробности (пользовательский UserControl)
  • Список привязан к MV.Items (IsSynchronizedWithCurrent=true)
  • Детали привязаны к MV.Items.Current
  • MV.Items.Count == 100
  • около 0,2 сек для чтения деталей (ленивый режим)

Когда я держу стрелку вниз в списке, происходят очень странные вещи:

  • изменение порядка элементов списка
  • текущие изменения в случайном порядке
  • Загрузка ЦП резко увеличивается и в конечном итоге все зависает.

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

Есть ли способ указать привязку в моем DetailsControl, чтобы подождать некоторое время, прежде чем принять CurrentItem? Или я должен просто уйти из чистого решения и написать собственный код в моем MV, чтобы справиться с этим?

1 ответ

Смотрите мой проект codeplex: http://wpfcollections.codeplex.com/

Существует LazyCurrentCollection, которая должна помочь.

Другие вопросы по тегам