【发布时间】:2014-07-09 17:58:26
【问题描述】:
我目前正在开发一个 Windows Phone 8 应用程序,我有几个关于 LongListSelector 项目回收的问题。
我的主页有 2 个 50 项的列表。每个项目由以下组成:
- 从资产加载 1 个临时图像;
- 从网络检索到 1 张图片;
- 1 条文字。
当我显示这 2 个列表时,应用程序由于 OutOfMemoryException 而崩溃。我的应用程序需要超过它所能拥有的 150Mo。
我的第一个问题是关于临时图像。实现此功能的最佳方法是什么?目前,我在同一个地方有 2 个图像,当加载“真实”图像时,它显示在临时图像上而不是在位置上。结果是我有 2 个图像控件。我想这不是提高性能和内存泄漏的最佳方法。
第二个问题是关于回收的。如何仅加载正在显示的图像。我尝试了几件事,例如将图像控件包装到 userControl 并将图像控件源设置为 null 到 Unload 事件中,但是当我滚动到第一项到最后一项而不是从第一项滚动到最后一项时,事件方法是只调用一次...所以内存不会被释放...
我正在使用 MVVM 模式来绑定图像控件的来源。
您是否有适当的示例来说明如何正确管理包含图像的项目的 LongListSelector ?
提前感谢您的提示!
【问题讨论】:
标签: c# image windows-phone-8 memory-leaks longlistselector