【发布时间】:2016-09-20 14:37:33
【问题描述】:
我有一个ListBox 绑定到一个自定义对象的大型集合,其中包含一个Bitmap。
目前我遇到了内存问题,因为所有位图都已加载,即使它们不可见。
我希望ListBox 以某种方式通知我的模型,以便我可以根据需要按需加载/卸载位图,以避免加载所有位图。因此,仅但仅加载在 ListBox 范围内可见的位图。
我该怎么做?
【问题讨论】:
-
虚拟化应该有助于提高速度和回收利用。您也可以只将少数项目添加到您的收藏中并处理滚动更改,当滚动条点击按钮然后加载添加另外一些到您的列表等等。
-
他们是共享图像吗?即使可见性设置为折叠状态也会加载吗?
-
虚拟化不会避免将整个集合绑定到列表框的内存中!
-
@Natxo 每个位图都是不同的,在运行时生成。 ListBox 中可能有大约 5000 个项目。