繁体   English   中英

在Windows Phone 8.1中为分组的ListView实现LoadMore分页吗?

[英]Implementing LoadMore pagination for a grouped ListView in Windows Phone 8.1?

是否可以将ListViewBase.LoadMoreItemsAsync方法应用于分组的ListView(CollectionViewSource)中的分页。 或者,也许您知道另一种方式,请告诉我。

您可以这样操作:在您的ListView上,使用以下代码添加“ Loaded”事件:

 private void LvPictures_OnLoaded(object sender, RoutedEventArgs e)
 {
     ScrollViewer viewer = GetScrollViewer(this.LvPictures);
     viewer.ViewChanged += LvPictures_ViewChanged;
 }


public static ScrollViewer GetScrollViewer(DependencyObject depObj)
      {
          if (depObj is ScrollViewer) return depObj as ScrollViewer;

          for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
          {
              var child = VisualTreeHelper.GetChild(depObj, i);

              var result = GetScrollViewer(child);
              if (result != null) return result;
          }
          return null;
      }

现在,您可以在ViewChangeEvent中指定何时要加载更多项目并实际执行此操作:

     private async void LvPictures_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
      {
          ScrollViewer view = (ScrollViewer)sender;
          double progress = view.VerticalOffset / view.ScrollableHeight;
          if (progress > 0.8 & !_incallFilesList && NextPagePicturesAvailable)
          {
              _incallFilesList = true;
              GetNextPicturesPageAsync();
          }
          _incallFilesList = false;
      }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM