Listbox Data Virtualization и Multi-select - PullRequest
       64

Listbox Data Virtualization и Multi-select

3 голосов
/ 28 сентября 2011

У меня есть список, который потенциально может содержать большое количество элементов с данными поддержки.Чтобы справиться с виртуализацией данных, я подключился к виртуализации пользовательского интерфейса WPF, написав коллекцию, которая реализует те же интерфейсы, что и ObservableCollection, и может при необходимости ускорять наши резервные данные.

Это работает отлично.Проблема возникает, когда я ввожу multi-select с помощью списка.Поскольку список управляет выбранными элементами по объектам, а не по индексу (SelectedItems), выбор всех элементов приводит к тому, что все вспомогательные данные ускоряются и сохраняются в памяти списком, что наносит ущерб виртуализации данных ...

Есть ли способ предотвратить это, кроме переписывания ListBox для управления выделением по индексу вместо объекта?

Спасибо!

Эрик

Ответы [ 2 ]

0 голосов
/ 05 октября 2011

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

0 голосов
/ 29 сентября 2011

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

http://www.kirupa.com/net/ui_virtualization_pg1.htm

...