WPF ListView.CurrentChanged слишком быстрый для привязки - PullRequest
1 голос
/ 02 апреля 2010

Мой случай:

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

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

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

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

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

1 Ответ

0 голосов
/ 21 апреля 2010

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

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

...