В Windows 8 Metro (WinRT) и C # / XAML, что является лучшим методом для реализации результатов текущего элемента (т. Е. Непрерывного разбиения по страницам)? - PullRequest
2 голосов
/ 09 марта 2012

Я пишу приложение для Windows 8 Metro на C # / XAML.

Одна из основных функций - вызывать JSON API и отображать результаты миниатюр. У меня это работает, но JSON API - это API на основе страниц, поэтому я могу получить первую страницу из 25 результатов, следующую страницу из 25 результатов и так далее. По некоторым запросам есть тысячи и тысячи результатов, и я бы хотел, чтобы пользователь мог пролистывать их в стиле потока.

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

Есть ли выделенный элемент управления, который делает это, или я встраиваю какой-то элемент управления слушателя и наблюдаю его видимое состояние, или что-то еще? Спасибо за любую помощь!

Ответы [ 3 ]

2 голосов
/ 14 марта 2012

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

1 голос
/ 09 марта 2012

Создайте ListBox и установите его ItemPanel в StackPanel, который упорядочен по горизонтали.Затем привяжите ItemsSource ListBox к ObservableCollection, которая хранит ваши эскизы.Напишите функцию, которая заполняет эту ObservableCollection, и вызовите эту функцию откуда-то асинхронно с Dispatcher.BeginInvoke.

0 голосов
/ 11 апреля 2012

Если ваша проблема не в том, чтобы загружать много элементов, вы можете запросить общее количество результатов в JSON API, затем создать все элементы и асинхронно вызвать метод Load, который заполняет их данные.

Это даст вам пустые плитки до тех пор, пока данные не будут загружены, и будет постепенно показывать все больше и больше плиток.

Несколько тысяч элементов в списке должны работать безупречно.

Я видел демо с 1000 и проблем не было.

...