如何在WinRT上实现延迟加载GridView?

时间:2013-06-10 14:25:02

标签: gridview windows-runtime microsoft-metro lazy-loading scrollviewer

我需要实现一个大拇指的网格视图。但当我的应用程序达到200拇指时,它开始出现内存问题(当然)。我需要实现一个延迟加载,但我不知道如何检测scrollviewer在gridview上的位置,所以我可以尝试在到达结尾时加载更多图像。

这是我的gridview布局: Example

有谁知道怎么做?

2 个答案:

答案 0 :(得分:1)

在源集合中实施ISupportIncrementalLoading以支持数据虚拟化,GridView将处理请求更多项目本身。另外,请确保您未将ItemsPanel的{​​{1}}更改为不支持UI虚拟化的GridView - 例如VariableSizedWrapGrid

另外,请确保您不会因任何其他原因而导致内存泄漏。通常,UI虚拟化的200项网格(默认)不应使用那么多内存,除非您的拇指实际上比您显示它们所需的分辨率大得多。检查this question以了解调试泄漏的方法。

答案 1 :(得分:0)

您可以自己创建拇指:只创建较小的图像 - 这就是全部。

   new BitmapImage(new Uri(Path)) {DecodePixelWidth = 200}