WP7 Auto Grow ListBox при достижении последнего элемента - PullRequest
6 голосов
/ 16 декабря 2010

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

Возможно ли это даже в WP7?

Редактировать: Другой способ сказать это, можем ли мы определить, когда список "отскочил"?

Ответы [ 5 ]

7 голосов
/ 25 января 2011

Даниэль Воган опубликовал пример того, как обнаружить это на http://danielvaughan.orpius.com/post/Scroll-Based-Data-Loading-in-Windows-Phone-7.aspx

5 голосов
/ 17 декабря 2010

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

  • Напишите свой собственный подкласс ObservableCollection, который предлагает только несколько элементов (например, 20), оставляя остальную часть отложенной до запроса
  • Подключившись к средству просмотра прокрутки (внутри списка или контейнера) и событиям его визуального состояния, вы можете получить изменения NotScrolling и Scrolling; для примера см. этот код от ptorr
  • Когда прокрутка останавливается, используйте код расширений прокрутки вьювера , чтобы увидеть, где что-то расширяется (внизу или нет), или просто свойства необработанного просмотрщика прокрутки, чтобы увидеть, распространяется ли он на дно
  • Если это так, активируйте свою наблюдаемую коллекцию, чтобы выпустить другой набор предметов.

Извините, у меня еще нет готового образца блога. Удачи!

5 голосов
/ 21 января 2011

Я только что реализовал это для Overflow7 .

Подход, который я использовал, был похож на http://blog.slimcode.com/2010/09/11/detect-when-a-listbox-scrolls-to-its-end-wp7/

Однако вместо использования стиля я сделалподключить код«Хакерская» вещь заключалась в том, что мне пришлось использовать ListBox1_ManipulationCompleted и VisualTreeHelper, чтобы найти мой ScrollViewer - я уверен, что есть лучшие способы ...

0 голосов
/ 12 ноября 2012

Посмотрите на это обнаружение состояния сжатия Listbox из блога msdn

0 голосов
/ 16 декабря 2010

Используйте DeferredLoadListBox .

...