Ответ 1
Статья Виртуализация данных WPF должна быть именно то, что вы ищете, я просто реализовал ее довольно легко, и она работает.
В нашем текущем приложении WinForms мы показываем миллионы записей в ListView, используя виртуализацию. Строки загружаются из БД по мере их запроса. Это хорошо работает, с хорошей производительностью.
Это showstopper для перехода на WPF для нас. Нам нужна виртуализация данных в ListView, например WinForms 2.0.
Знаете ли вы приличный сторонний элемент управления или относительно простой способ сделать это со встроенными элементами управления? Он не должен быть DataGrid, достаточно простого ListView.
Обратите внимание, что я говорю о виртуализации пользовательского интерфейса, это виртуализация данных.
Статья Виртуализация данных WPF должна быть именно то, что вы ищете, я просто реализовал ее довольно легко, и она работает.
Xceed DataGrid для WPF поддерживает поддержку виртуализации данных.
Это описание Ultimate ListBox для WPF из Xceed:
Интеллектуальное извлечение виртуальных исходных данных:
Автоматическое извлечение данных получает только записи из удаленного источника данных, если они видны (виртуализация данных). Это значительно уменьшает количество передаваемых данных, что увеличивает воспринимаемую скорость списка. Также уменьшает нагрузку на сервер.
Просто добавьте следующие свойства в ваше объявление списка в XAML.
<ListView
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.IsVirtualizingWhenGrouping="True"
VirtualizingPanel.VirtualizationMode="Recycling"
ScrollViewer.IsDeferredScrollingEnabled="True" >
</ListView>