这个问题有很多答案,但是,正如我所看到的,所有这些都是关于在底部获取旧项目。
此解决方案:
void resultList_ItemRealized(object sender, ItemRealizationEventArgs e)
{
if (!_viewModel.IsLoading && resultList.ItemsSource != null && resultList.ItemsSource.Count >= _offsetKnob)
{
if (e.ItemKind == LongListSelectorItemKind.Item)
{
if ((e.Container.Content as TwitterSearchResult).Equals(resultList.ItemsSource[resultList.ItemsSource.Count - _offsetKnob]))
{
_viewModel.LoadPage(_searchTerm, _pageNumber++);
}
}
}
}
是关于在向下滚动时获取项目。
如何在顶部获取新的内容(底部不是更旧的内容)?如何知道用户是否向上滚动LongListSelector
答案 0 :(得分:0)
你不能依赖ItemRealized
被解雇。您需要在ManipulationDelta
上的LongListSelector
事件中添加一个侦听器。如果增量为负,则用户向上滚动。
修改强>
我只记得微软在LongListSelector (LLS)
中更改为Windows Phone 8
,这意味着无法确定列表滚动的方向。
解决方法是将LLS
放入ScrollViewer
。然后将Height
的{{1}}属性设置为自动。这样滚动的LLS
而不是ScrollViewer
。然后在LLS
ScrollViewer's
上添加一个监听器。
VerticalOffset
有关VisualStateHelper的信息,请参阅here
答案 1 :(得分:0)
以下是两个用于完成Windows Phone 7中ListBox(已标记)的帖子,也适用于Windows Phone 8
http://sharpgis.net/post/2011/04/03/RefreshBox-for-Windows-Phone-7.aspx http://blogs.msdn.com/b/jasongin/archive/2011/04/13/pull-down-to-refresh-a-wp7-listbox-or-scrollviewer.aspx
两者都要设置
ScrollViewer.ManipulationMode ="Control"