Обнаружение прокрутки до конца списка

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


person Vitalii Vasylenko    schedule 11.03.2013    source источник


Ответы (4)


Точные решения, которые вы ищете: http://danielvaughan.orpius.com/post/Scroll-Based-Data-Loading-in-Windows-Phone-7.aspx

person Alius    schedule 12.03.2013

Вы думаете о виртуализации данных. Шон Остер написал действительно хорошее объяснение этому здесь. Подводя итог, можно сказать, что не ListBox управляет вашими данными, а ваша пользовательская реализация IList, которая может извлекать новые элементы каждый раз, когда требуется новый фрагмент данных.

person Den Delimarsky    schedule 11.03.2013
comment
Плохо, что я не могу отметить оба ответа как правильные: обе ссылки содержат полезную информацию. - person Vitalii Vasylenko; 12.03.2013

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

person jaintanya1128    schedule 13.03.2013

Лучший подход — использовать LongListSelector. Он доступен в Windows Phone Toolkit для Windows Phone 7 или встроен в Windows Phone 8. Он работает лучше чем встроенный ListBox и имеет больше возможностей.

сообщение из официального блога разработчиков Windows Phone (от октября 2012 г.) содержит все подробности и рассказывает, как настроить бесконечную прокрутку.

person Neil Turner    schedule 13.03.2013
comment
Он работает лучше, пока у вас не появятся сложные шаблоны данных с вложенными списками, создающими пользовательский интерфейс, похожий на Stack Overflow. Затем он генерирует исключение LayoutCycleException, когда вы вставляете или удаляете элемент, который запускает цикл макета. После возвращения к ListBox все мои кошмары рассеялись, как утренний туман. - person Peter Wone; 12.02.2014