2012-11-14 16 views
6

LongListSelector cihazım en alta geldiğinde, bir web servisinden daha fazla veriyi otomatik olarak yüklemek istiyorum. Mağaza uygulamasında olduğu gibi. Benim problemim, yükü daha fazla harekete geçirecek herhangi bir olay bulamadığım.LongListSelector ile Sürekli Sayfalandırma

cevap

13

Microsoft'un önerisi, LongListSelector.ItemRealized olayını kullanmaktır, listedeki son öğenin (veya son öğenin) "gerçekleşmiş" olup olmadığını kontrol edin, eğer varsa, yeni kayıtlar almaya başlayacaktır. . UX açısından, SystemTray üzerinde o sırada bir ProgressIndicator göstermek ve inline iğnelerle iOS'u taklit etmeye çalışmak en iyisidir.

LongListSelector.ItemGealized, bir öğenin sanallaştırılmış bir ListBoxItem öğesine bağlı olması durumunda tetiklendiği için aslında çok ilginç bir olaydır. Bu, LongListSelector sanallaştırma mantığının, ekranda görüntülenecek FrameworkElement öğesini hazırlama gereğini düşündüğü anlamına gelir. ListBoxItem henüz ekranda olabilir veya olmayabilir, ancak oraya varmanın iyi bir göstergesidir.

bir kod örneği için http://code.msdn.microsoft.com/wpapps/TwitterSearch-Windows-b7fc4e5e

void resultListBox_ItemRealized(object sender, ItemRealizationEventArgs e) 
    { 
     if (!_viewModel.IsLoading && resultListBox.ItemsSource != null && resultListBox.ItemsSource.Count >= _offsetKnob) 
     { 
      if (e.ItemKind == LongListSelectorItemKind.Item) 
      { 
       if ((e.Container.Content as TwitterSearchResult).Equals(resultListBox.ItemsSource[resultListBox.ItemsSource.Count - _offsetKnob])) 
       { 
        Debug.WriteLine("Searching for {0}", _pageNumber); 
        _viewModel.LoadPage(_searchTerm, _pageNumber++); 
       } 
      } 
     } 
    } 
+0

mükemmel @ bkz teşekkür ederim! –

+0

Merhaba, bu _offsetKnob nedir. – Noorul

+0

@JustinAngel, Koleksiyonu ilk defa yüklediğimde, bu senaryoyu nasıl aşacağımı, kod örneğini inceledim. sen bağladın – Eldho

İlgili konular