Windows phone 8 使用LongListSelector进行连续分页
当我的LongListSelector滚动到底部时,我希望自动从web服务加载更多数据。就像商店应用程序一样。我的问题是找不到任何事件来触发加载更多操作。Microsoft建议使用LongListSelector.ItemRealized事件,检查它是否是列表中要“实现”的最后一项(或第n个最后一项),如果是,则它将开始获取新记录。就用户体验而言,最好在当时的系统托盘上显示ProgressIndicator,而不要试图用内嵌微调器模仿iOS LongListSelector.ItemRealized实际上是一个非常有趣的事件,因为当一个项被数据绑定到虚拟化的ListBoxItem时,它会触发。这意味着LongListSelector虚拟化逻辑认为需要准备要在屏幕上显示的FrameworkElement。ListBoxItem可能在屏幕上,也可能不在屏幕上,但这是一个很好的迹象,表明它正在进入屏幕 有关代码示例,请参见@Windows phone 8 使用LongListSelector进行连续分页,windows-phone-8,Windows Phone 8,当我的LongListSelector滚动到底部时,我希望自动从web服务加载更多数据。就像商店应用程序一样。我的问题是找不到任何事件来触发加载更多操作。Microsoft建议使用LongListSelector.ItemRealized事件,检查它是否是列表中要“实现”的最后一项(或第n个最后一项),如果是,则它将开始获取新记录。就用户体验而言,最好在当时的系统托盘上显示ProgressIndicator,而不要试图用内嵌微调器模仿iOS LongListSelector.ItemRealiz
您好,这是什么?offsetKnob。@JustinAngel,当我加载集合时,它将在第一次启动。我如何克服这种情况,我已经查看了代码示例。你的附件。
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++);
}
}
}
}