如何通过拉下物品来刷新?
对于这个问题有很多答案,但是,正如我所看到的,所有这些都是关于在底部获取旧项目。
这个解决方案
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
以下是两个用于完成Windows Phone 7中ListBox(已标记)的post,也适用于Windows Phone 8
https://sharpgis.net/post/2011/04/03/RefreshBox-for-Windows-Phone-7.aspx https://blogs.msdn.com/b/jasongin/archive/2011/04/13/pull -down到刷新-A-WP7,列表框或- scrollviewer.aspx
两者都要陈述
ScrollViewer.ManipulationMode ="Control"
你不能依赖于被解雇的ItemRealized
。 您需要在LongListSelector
上的ManipulationDelta
事件上添加一个侦听LongListSelector
。 如果增量为负,则用户向上滚动。
编辑
我只记得微软在Windows Phone 8
对LongListSelector (LLS)
进行了一些更改,这意味着无法获得列表滚动的方向。
解决方法是将LLS
放在ScrollViewer
。 然后将LLS
的Height
属性设置为Auto 。 这样ScrollViewer
而不是LLS
。 然后在ScrollViewer's
VerticalOffset
上添加一个监听器。
private double _scrollingFrom; ScrollViewer.Loaded += (sender, args) => VisualStateHelper.HookEvent(ScrollViewer, "ScrollStates", scrollHandler); private void scrollHandler(object sender, VisualStateChangedEventArgs e) { if (e.NewState.Name.Equals("NotScrolling")) { if (ScrollViewer.VerticalOffset < _scrollingFrom) { // Scrolled up } else { // Scrolled down } } else { _scrollingFrom = ScrollViewer.VerticalOffset; } }
请参见此处的VisualStateHelper
上述就是C#学习教程:如何通过拉下物品来刷新?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/988372.html