Windows phone 8 使用LongListSelector进行连续分页

Windows phone 8 使用LongListSelector进行连续分页,windows-phone-8,Windows Phone 8,当我的LongListSelector滚动到底部时,我希望自动从web服务加载更多数据。就像商店应用程序一样。我的问题是找不到任何事件来触发加载更多操作。Microsoft建议使用LongListSelector.ItemRealized事件,检查它是否是列表中要“实现”的最后一项(或第n个最后一项),如果是,则它将开始获取新记录。就用户体验而言,最好在当时的系统托盘上显示ProgressIndicator,而不要试图用内嵌微调器模仿iOS LongListSelector.ItemRealiz

当我的LongListSelector滚动到底部时,我希望自动从web服务加载更多数据。就像商店应用程序一样。我的问题是找不到任何事件来触发加载更多操作。

Microsoft建议使用LongListSelector.ItemRealized事件,检查它是否是列表中要“实现”的最后一项(或第n个最后一项),如果是,则它将开始获取新记录。就用户体验而言,最好在当时的系统托盘上显示ProgressIndicator,而不要试图用内嵌微调器模仿iOS

LongListSelector.ItemRealized实际上是一个非常有趣的事件,因为当一个项被数据绑定到虚拟化的ListBoxItem时,它会触发。这意味着LongListSelector虚拟化逻辑认为需要准备要在屏幕上显示的FrameworkElement。ListBoxItem可能在屏幕上,也可能不在屏幕上,但这是一个很好的迹象,表明它正在进入屏幕

有关代码示例,请参见@


您好,这是什么?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++);
                }
            }
        }
    }