【问题标题】:WinRT gridview scroll detectionWinRT gridview 滚动检测
【发布时间】:2013-06-04 02:59:28
【问题描述】:

在 WinRT 上,我有一个网格视图。我想在到达 gridview 末尾时执行一个方法。

但是,对于 gridview,没有类似的事件方法。

我尝试检测对 gridview 的操作,但似乎我的 gridview 中包含的滚动查看器捕获了所有事件。我怎样才能得到这个滚动查看器?甚至在使用我的scrollViewer之后,我怎么知道这个scrollviewer的位置(例如reachedEnd?)

谢谢

【问题讨论】:

  • 你需要这个做什么?如果要在用户到达终点时加载新项目,您应该让您的集合实现 ISupportIncrementalLoading。如果您这样做,网格将逐步自动加载您的数据。另见msdn.microsoft.com/en-us/library/windows/apps/hh994637.aspx
  • 因为我的应用程序使用跨平台核心,所以我不能使用 ISupportIncrementalLoading 之类的东西(因为取决于 Windows UI)。我忘了提。

标签: gridview scroll windows-runtime


【解决方案1】:

您可以使用VisualTreeHelper 查找GridView 类型为ScrollViewer 的后代,然后订阅其ViewChanged 事件。在事件处理程序中,您可以检测到您在ScrollViewer 中的位置。然后将ScrollViewer.ScrollableWidthHorizontalOffset 进行比较,看看您是否已到达终点。

如果您想驱动一些自定义布局/动画逻辑,请使用它,但如果您尝试加载更多数据,请使用 ISupportIncrementalLoading,尽管正如 chue x 建议的那样。

【讨论】:

  • 非常感谢,问题是我的gridview加载后只有1个孩子,一个边框。在 Xaml 中,我只使用了一个 gridview,但是这个 gridview 有一个滚动......似乎 gridview 有一个实习生滚动并且无法访问它。最后我通过使用它成功了:stackoverflow.com/questions/11830574/… 并且它有效:-)
猜你喜欢
  • 1970-01-01
  • 2012-10-31
  • 2012-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-07
  • 2011-04-17
相关资源
最近更新 更多