WPF Data виртуализирует ListView - PullRequest
11 голосов
/ 11 июня 2009

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

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

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

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

Ответы [ 4 ]

13 голосов
/ 27 июня 2009

Статья WPF Data Virtualization должна быть именно тем, что вы ищете, я просто реализовал ее довольно легко, и она работает.

2 голосов
/ 11 июня 2009

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

1 голос
/ 09 декабря 2018

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

<ListView 
      VirtualizingPanel.IsVirtualizing="True"
      VirtualizingPanel.IsVirtualizingWhenGrouping="True"
      VirtualizingPanel.VirtualizationMode="Recycling"
      ScrollViewer.IsDeferredScrollingEnabled="True" >
</ListView>
1 голос
/ 24 октября 2011

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

Интеллектуальный виртуальный фоновый поиск данных:

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

...