LongListSelector Виртуализация данных - PullRequest
7 голосов
/ 21 июля 2011

Поддерживает ли LongListSelector виртуализацию данных? Я читал о некоторых блогах, но это не помогло.

Вот что я попробовал: я предоставил реализацию IList как ItemsSource для Списка. Проблема в том, что список вызывает GetEnumerator() вместо this[int index], чтобы получить элемент списка.

Итак, мой вопрос: как реализовать виртуализацию данных для LongListSelector?

Ответы [ 2 ]

5 голосов
/ 25 июля 2011

Как вы сказали, LongListSelector по-прежнему основан на GetEnumerator даже для рендеринга типов IList. Скорее всего, контроль должен быть переписан для поддержки цели. Хотя блоги могут сказать, что это поддерживают, ни один из них не говорит, как, поэтому я не склонен им верить. По умолчанию LongListSelector отображает все элементы.

Что касается загрузки данных, это можно сделать прогрессивно, используя ObservableCollection. Я получил пример проекта , который показывает, как использовать ObservableCollection в сочетании с LongListSelector.

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

1 голос
/ 16 апреля 2012

Я посмотрел на исходный код LongListSelector, невозможно виртуализировать резервное хранилище.LongListSelector загружает каждый элемент из списка групп через цикл foreach.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...