Виртуализация данных WPF ListView

В нашем текущем приложении WinForms мы отображаем миллионы записей в ListView, используя виртуализацию. Строки загружаются из БД по мере их запроса. Это работает хорошо, с хорошей производительностью.

Для нас это преграда для перехода на WPF. Нам нужна виртуализация данных в ListView, как в WinForms 2.0.

Знаете ли вы достойный сторонний элемент управления или относительно простой способ сделать это с помощью встроенных элементов управления? Это не обязательно должен быть DataGrid, достаточно простого ListView.

Обратите внимание, я говорю о виртуализации пользовательского интерфейса, это виртуализация данных.


person Robert Jeppesen    schedule 11.06.2009    source источник
comment
С точки зрения UX: выиграют ли пользователи от возможности прокручивать миллионы строк? Разве им не всегда интересны только первые несколько (сотни) элементов, основанных на поиске?   -  person Martin Konicek    schedule 18.06.2012


Ответы (4)


Статья Виртуализация данных WPF должна быть именно тем, что вы ищете, я просто реализовано это довольно легко, и это работает.

person Martin Konicek    schedule 26.06.2009
comment
ответы только со ссылками не годятся. - person Sinatr; 03.07.2020

Xceed DataGrid для WPF поддерживает виртуализацию данных.

person Samuel Jack    schedule 11.06.2009

Это описание Ultimate ListBox для WPF от Xceed:

Интеллектуальное виртуализированное фоновое извлечение данных:

Автоматическое извлечение данных получает записи из удаленного источника данных только в том случае, если они видны (виртуализация данных). Это значительно уменьшает объем передаваемых данных, что увеличивает воспринимаемую скорость списка. Также снижает нагрузку на сервер.

person Dahdahm    schedule 24.10.2011

Просто добавьте следующие свойства в объявление списка в XAML.

<ListView 
      VirtualizingPanel.IsVirtualizing="True"
      VirtualizingPanel.IsVirtualizingWhenGrouping="True"
      VirtualizingPanel.VirtualizationMode="Recycling"
      ScrollViewer.IsDeferredScrollingEnabled="True" >
</ListView>
person khushi pari    schedule 09.12.2018
comment
Обратите внимание, я не говорю о виртуализации пользовательского интерфейса, это виртуализация данных. - person Sinatr; 03.07.2020