我有一个透视视图,其中包含6个PivotItems。每个PivotItem都包含一组电影列表。每部电影都有一张封面图片,旁边有标题和其他一些元数据。为了将其样式设置为我想要的样子,我必须使用一些网格/堆栈面板。此外,每个项目都有上下文菜单。在我的ListBox上方,我有一个性能进度条,以显示在加载数据时(我从Web API获取所有内容)的状态。我的问题是,其中一个列表包含比其他列表多得多的电影,约100部。加载此列表时,应用程序使用大约150-160 MB的内存,超过了90 MB的限制。看起来好像所有的图像和内容都会立即加载(我认为这是引起问题的原因)。
我的要求是这样的:
首先加载标题和元数据,然后仅在用户当前所在的列表位置加载图像,以便在用户向下滚动到它之前不会加载更多的图像。
我已经尝试过使用deferredloadlist、lazylist和normal listbox,并且已经尝试将virtualization设置为standard和recycling,但没有结果。虽然我必须承认我不确定所有这些东西都是做什么的。有人知道我该怎么解决这个问题吗?谢谢您的帮助。
PS. ListBox的XAML代码有点笨拙,所以我决定不在此帖中包含它。不过如果你真的需要查看它来帮助我,请告诉我。
更新:我已经使用虚拟化ListBox成功地减少了内存使用量,但它仍然约为100 MB。我在某个地方读到,当完成使用图像时,将bitmapImage.ImageSource=null;设置为null会从内存中清除它。当它们在ListBox中时,我该如何做到这一点?
我的要求是这样的:
首先加载标题和元数据,然后仅在用户当前所在的列表位置加载图像,以便在用户向下滚动到它之前不会加载更多的图像。
我已经尝试过使用deferredloadlist、lazylist和normal listbox,并且已经尝试将virtualization设置为standard和recycling,但没有结果。虽然我必须承认我不确定所有这些东西都是做什么的。有人知道我该怎么解决这个问题吗?谢谢您的帮助。
PS. ListBox的XAML代码有点笨拙,所以我决定不在此帖中包含它。不过如果你真的需要查看它来帮助我,请告诉我。
更新:我已经使用虚拟化ListBox成功地减少了内存使用量,但它仍然约为100 MB。我在某个地方读到,当完成使用图像时,将bitmapImage.ImageSource=null;设置为null会从内存中清除它。当它们在ListBox中时,我该如何做到这一点?