iphone一次有10个列表框条目,它不会'加载所有10k条目并同时滚动它们。它添加一个条目,一次减去一个条目。那么你如何在wpf列表框中执行此操作?我怎么做,说20个列表框条目,并添加一个或两个,并减去相同的数量?数据绑定列表框是否会解决此性能问题?
答案 0 :(得分:5)
您要找的是VirtualizingStackPanel
。此控件仅显示您在屏幕上实际需要的项目,即使您还有数千个可用于该项目的项目。这是关于它的MSDN文章:
http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.aspx
这是一篇关于此控件的小文章,它简单地解释了它:
http://windowsclient.net/blogs/microsoft_kc/archive/2009/05/13/what-is-virtualizing-stackpanel.aspx
第二篇文章中的一个关键点是你应该使用Recycling
属性来确保你使用最少量的资源:
VirtualizingStackPanel.VirtualizationMode="Recycling"
答案 1 :(得分:2)
ListBox WPF控件默认使用VirtualizingStackPanel,除非您将ScrollViewer.CanContentScroll属性更改为false,在这种情况下,您可以顺利滚动以换取虚拟化的丢失。