如何在LongListSelector中检测滚动到顶部?

时间:2013-06-29 10:07:58

标签: silverlight windows-phone-7 scroll windows-phone-8 longlistselector

对于WP8,我使用LongListSelector来显示项目列表。我需要检测用户何时滚动到顶部以加载列表中的先前项目。

我尝试使用ItemRealized事件来检测顶部元素何时被实现。有几个引用用于检测'滚动到底部'。

但即使该用户尚未滚动到该项目,此事件也会被top元素触发。所以,这不是我检测'滚动到顶部'。

有没有办法检测到这个?

2 个答案:

答案 0 :(得分:0)

使用您已经使用的技术(ItemRealized),但忽略第一个事件(因为那是创建列表的时候。您只需设置一个标志就可以忽略它:

private bool _firstRealized = false;

void yourLLS_ItemRealized(object sender, ItemRealizationEventArgs e)
{
    // do your item detection here. For example:
    if (Data[0] == e.Container.Content) {

       // then
       if (!_firstRealized)
       {
          _firstRealized = true;
       }
       else
       {
          // woo - we've scrolled to top! Do your stuff
       }        
   }
}

答案 1 :(得分:0)

您可以简单地使用此引用来获取垂直偏移 Get vertical offset of LongListSelector

当垂直偏移为0(或小于10)时,您就在ViewPort上。