2014-05-25 4 views
0

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

Авто прокрутки (который работает хорошо):

private void VideosList_ItemRealized(object sender, System.Windows.Input.ManipulationDeltaEventArgs e) 
    { 
     ScrollViewer sv = VideosList.Descendents().OfType<ScrollViewer>().FirstOrDefault(); 

     if (sv != null && this.isloading == false && sv.VerticalOffset >= (sv.ScrollableHeight - 60)) 
     { 
      this.isloading = true; 
      videosList.getMoreVideos(20); 
     } 
     //videosList.getMoreVideos(5); 
    } 

Связывание

public void videosListUpdateFinished(object sender, EventArgs e) 
{ 
    YTVideoPage.Focus(); 
    VideosList.ItemsSource = null; 
    VideosList.ItemsSource = videosList.ytvideos.data.items; 
    this.isloading = false; 
} 

Как я могу получить ListBox оставаться в том же положении, при изменении привязки? Я попытался получить VerticalOffset и установить его при загрузке, но он не работает.

Надеюсь, вы можете мне помочь. Спасибо.

+0

Для справки, теперь я использую ObservableCollection, поэтому я удалил строку «VideosList.ItemsSource = null;» – Adelaiglesia

ответ

1

Почему вы не используете новый LongListSelector для WP8? Это хорошо работает для бесконечной прокрутки. Есть также примеры, как использовать это: http://code.msdn.microsoft.com/wpapps/TwitterSearch-Windows-b7fc4e5e

К сожалению, API twitter изменился, и вы не получите никаких данных, но код примера все же помог мне разобраться, как его реализовать.

+0

Спасибо, теперь я использую LongListSelector, и он работает! Я не пытаюсь использовать данные Twitter. Для будущей ссылки - плохая идея, использующая ListBox для реализации бесконечной прокрутки, VerticalOffset каждый раз меняет на неожиданное значение, я не знаю почему. – Adelaiglesia

Смежные вопросы