我有一个枢轴视图,有 6 个枢轴项。每个数据透视项都包含一个电影列表。每部电影都有一个封面图片,旁边还有一个标题和一些其他元数据。显然,要按照我的意愿设置样式,必须使用一些网格/堆栈面板。另外,我有每个项目的上下文菜单。在我的列表框上方,我有一个性能进度条,可以在加载数据时显示(我从 Web API 获取所有内容)。我的问题是其中一个列表包含的电影比其他列表多得多,大约 100 部。加载此列表时,应用程序使用大约 150-160 mb 内存,超过了 90 mb 的限制。看起来所有图像和内容都已立即加载(我认为这会导致此问题)。
我想要的是这样的:
首先加载标题和元数据,然后仅加载列表中用户当前所在位置的图像,以便在用户向下滚动到列表之前加载列表中较长的图像。
我尝试使用 deferredloadlist、lazylist 和普通列表框,并尝试将虚拟化设置为标准和回收,但没有结果。我必须承认我不确定所有这些事情到底是做什么的。有谁知道我该如何解决这个问题?提前致谢。
PS。列表框的 xaml 代码有些笨拙,所以我决定不在这篇文章中包含它。让我知道您是否真的需要查看它以提供帮助。
更新:我已经能够通过使用虚拟化列表框来减少内存使用量,但它仍然在 100 mb 左右。我在某处读到设置 bitmapImage.ImageSource =null; 完成使用图像后,会将其从内存中清除。当它们在列表框中时,如何为每个图像执行此操作?