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, которая должна помочь.