我使用的是ListBox,它有VirtualizingStackPanel,据说它默认支持UI虚拟化。
但是,当我将我的listStudent (类型为ObservableCollection,其中有5个学生)设置为Listbox的ItemsSource时。然后,每当用户滚动到末尾时,我会在我的listStudent中再添加5名学生(当然还会通知UI )。但我看到记忆消耗不断增加。在内存方面与StackPanel没有什么不同
UI虚拟化是如何工作的?在listStudent中添加新项时如何保持低内存
发布于 2012-11-15 08:13:53
虚拟化意味着列表不构造尚未滚动到的列表项。
因此,您可以将测试代码放到item的加载函数或使用的转换器代码中。您可以看到虚拟化是否有效。
例如
您可以将转换器绑定到学生的名称支柱,并且可以将其记录为.then,您知道项目创建的时间。
发布于 2012-11-15 11:47:16
确保不修改破坏UI虚拟化的ListBox ItemsPanel
发布于 2012-11-20 11:36:28
Sheldon_Xiao on指出了帮助解释UI虚拟化在MSDN上的一些参考。
https://stackoverflow.com/questions/13377872
复制相似问题