2013-03-18 1 views
2

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

В моем случае 6 предметов достаточно, чтобы заполнить экран, и после некоторого исследования выяснилось, что LongListSelector загружает 20-22 элемента при запуске. Я думаю, что это может быть безопасно уменьшено до 10 предметов или около того. Вопрос в том, может ли количество изначально созданных предметов быть каким-то образом сокращено?

+0

У вас проблемы с производительностью? «LongListSelector» оптимизирован, и если ваш «ItemTemplate» не очень сложный, я не вижу виртуализацию пользовательского интерфейса по умолчанию в качестве проблемы. –

+0

В некотором смысле, да. У меня есть некоторые UserControls, которые создаются и добавляются в сцену динамически, которые содержат LongListSelector внутри, и есть очень маленький, но иногда заметный сбой, когда LongListSelector загружает элементы в первый раз. – Anton

+0

Я ничего не вижу в документах для ['LongListSelector'] (http://msdn.microsoft.com/en-US/library/windowsphone/develop/microsoft.phone.controls.longlistselector (v = vs 0,105) .aspx). Я нашел пару связанных записей, посвященных [прокручиванию производительности] (http://stackoverflow.com/questions/9467419/how-to-attain-virtualization-in-listbox-with-different-layouts-of-windows-phone) и [виртуализация данных] (http://stackoverflow.com/questions/7441510/listbox-data-virtualization-is-not-taking-effect). –

ответ

2

According to the official documentation, похоже, нет способа или свойства, которые позволяли бы настроить количество виртуализации пользовательского интерфейса LongListSelector по умолчанию.

Вы можете изучить виртуализацию данных. Previous answers/tutorials use an IList, но не должно быть слишком много работы для использования a modified ObservableCollection instead.

Еще одна идея, которую я еще не пробовал, - взять WP7 version of LongListSelector из набора инструментов WP, переименовать, а затем настроить его. Но это может быть много работы.