wpf listbox with< 10k条目...我如何提高效率?

时间:2011-05-14 16:59:21

标签: c# wpf listbox

iphone一次有10个列表框条目,它不会'加载所有10k条目并同时滚动它们。它添加一个条目,一次减去一个条目。那么你如何在wpf列表框中执行此操作?我怎么做,说20个列表框条目,并添加一个或两个,并减去相同的数量?数据绑定列表框是否会解决此性能问题?

2 个答案:

答案 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,在这种情况下,您可以顺利滚动以换取虚拟化的丢失。