我試圖用動態加載實現一個不定式可滾動列表。 (如http://blogs.windows.com/windows_phone/b/wpdev/archive/2012/10/01/how-to-create-an-infinite-scrollable-list-with-longlistselector.aspx)LongListSelector WP8 ItemRealized -infinite可滾動列表-
數據源是綁定到的ObservableCollection
列表的填充與將項目添加到集合
的ItemRealizedEvent開始啓動的ObservableCollection的進一步餡料
我以爲t他通過滾動觸發了ItemrealizedEvent,但是在將項目添加到每個項目的集合後,它始終觸發。
- >所以它不是動態的,它只是加載所有的東西
任何想法?
在PageClass:
within the Constructor:
(...)
LLS_BooksListAll.DataContext = _viewModel.SearchAllViewModel;
LLS_BooksListAll.ItemsSource = _viewModel.SearchAllViewModel.MediumCollection;
(...)
private async void LLS_BooksListAll_ItemRealized(object sender, ItemRealizationEventArgs e)
{
if ((LLS_BooksListAll.ItemsSource as ObservableCollection<Medium>) == null) return;
//get number of loaded items
int currentItemsCount = (LLS_BooksListAll.ItemsSource as ObservableCollection<Medium>).Count;
if (!_viewModel.SearchAllViewModel.IsLoading && currentItemsCount >= _offsetKnob &&
(e.Container.Content as Medium) != null)
{
if ((e.Container.Content as Medium).Equals((LLS_BooksListAll.ItemsSource as
ObservableCollection<Medium>)[currentItemsCount - _offsetKnob]))
{
_pageNumberAll++;
try
{
await _viewModel.SearchAllViewModel.SearchAll(TB_Search.Text, _pageNumberAll);
}
catch (RestException ex)
{
MessageBox.Show("Connection-Error: LLS_BooksListAll_ItemRealized - " + ex.Message);
}
}
}
}
在ViewModelClass:
public async void SearchAll(string searchword, int pageNumber)
{
if (pageNumber == 1) this.MediumCollection.Clear();
IsLoading = true;
SearchRequest search = new SearchRequest();
String responseString = await search.Get(searchword, SearchRange.all, pageNumber);
MediaUser response = JsonConvert.DeserializeObject<MediaUser>(responseString);
foreach (Medium med in response.media)
{
MediumCollection.Add(med); //Filling the observable collection
}
IsLoading = false;
}
不知道爲什麼我沒試過這個......謝謝 – IntegerWolf
我完全是這個問題中描述的情況,但是當我搜索「Smith」時,它發生了一個結果,以10個塊爲單位產生了100個項目,實現了項目保持射擊和全部100負載。 –