ObservableCollection中的虚拟化/分页数据绑定到WinRT中的ItemsControl

时间:2015-03-23 21:29:05

标签: c# windows-runtime observablecollection virtualization

我们如何在ObservableCollection或List中可视化数据,该数据被设置为ItemsControl的ItemSource? 我们在ScrollViewer中使用ItemsControl来制作自定义集合控件,由于某些技术原因(设计约束),我们无法使用ListView或通过ISupportIncremental支持VirtualizingStackPanel和Data Virtualization的GridView控件,因此我们必须在ScrollViewer中使用ItemsControl 。 那么我们的ScrollViewer控件如何通知绑定的可观察集合滚动已经结束并将更多数据加载到ObservableCollection中, 我找到了一些关于随机访问数据虚拟化的信息,但不确定如何在我的WinRT,C#Custom Control项目中实现这一点,并且示例代码会有所帮助

1 个答案:

答案 0 :(得分:0)

如果您正在实施自定义列表控件(如果您未使用ListViewGridViewListBox),那么{{1} }需要成为其模板的一部分,因此您可以收听具有IsInertialIsIndeterminate属性的ScrollViewerViewChanging个事件,您可以使用它们查看是否滚动已停止,您可以使用它们来决定是否有时间获取更多数据或只是在项目源中放置一些占位符值。您可能还有一个项目源属性,因为您想要进行自己的虚拟化 - 您并不需要关心ViewChanged,尽管您可以将其用作(希望)良好的示例。您可以实现自己的虚拟化面板和源列表。您的视图更改ISupportIncremental中的事件以及面板的布局将驱动从项目源加载的内容。

至于示例代码 - 我还没有看到任何代码,但也很乐意看到一些代码!