【发布时间】:2012-11-14 11:24:02
【问题描述】:
我使用的 ListBox 有VirtualizingStackPanel,据说默认支持 UI 虚拟化。
但是,当我将我的 listStudent(类型为 ObservableCollection,其中有 5 个学生)设置为 ItemsSource 时,我的 Listbox。然后,每当用户滚动到末尾时,我就会将另外 5 个学生添加到我的 listStudent 中(当然 UI 也会收到通知)。但我看到消耗的内存不断增加。内存方面和StackPanel没什么区别
UI 虚拟化如何工作?向 listStudent 添加新项目时如何保持低内存?
【问题讨论】:
-
操作系统预加载 3 个屏幕尺寸 (?)。您可以添加更多学生(例如 100 名)来看看差异吗?
-
@Ku6opr 我多次添加 5 个学生,所以当我的 listStudent.Count 超过 100 时,我向上滚动。 ListBox 虚拟化机制必须销毁那些不在屏幕中的 ListBoxItem。但它没有!
标签: windows-phone-7 memory-leaks observablecollection virtualizingstackpanel