如何通过拉下物品来刷新?

时间:2013-11-17 23:31:29

标签: c# xaml windows-phone-7 windows-phone-8 windows-phone

这个问题有很多答案,但是,正如我所看到的,所有这些都是关于在底部获取旧项目。

此解决方案:

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

2 个答案:

答案 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"