1

我正在使用具有 的 ListBox,VirtualizingStackPanel据说默认情况下支持 UI 虚拟化。

但是,当我设置我的listStudent(类型为ObservableCollection,其中有 5 个学生)时ItemsSource,我的Listbox. 然后,每当用户滚动到末尾时,我都会向我的listStudent添加另外 5 个学生(当然会通知 UI)。但我看到消耗的内存不断增加。StackPanel和记忆力没什么区别

UI 虚拟化如何工作?向listStudent添加新项目时如何保持低内存?

4

3 回答 3

0

虚拟化意味着列表不构造您尚未滚动到的列表项。

所以你可以把你的测试代码放到项目的加载函数或使用的转换器代码中。你可以看看虚拟化是否有效

例如

您可以将转换器绑定到学生的姓名道具并且您可以记录它。然后您知道该项目何时创建

于 2012-11-15T08:13:53.967 回答
0

确保您没有修改ListBox ItemsPanel会破坏 UI 虚拟化

于 2012-11-15T11:47:16.240 回答
0

Sheldon_Xiao on 在 MSDN 上指出了一些有助于解释 UI 虚拟化的参考资料

于 2012-11-20T11:36:28.757 回答