我有一个66000项itemsSource的WPF组合框控件。为了提高加载性能,我使用了VirtualizingStackPanel并且没问题,但现在我又遇到了另一个问题。使用数千个项目优化WPF组合框搜索
ComboBox是可编辑的,当我在TextBox上键入时,它开始搜索SelectedItem以匹配...但它很慢,并且不会立即响应输入的字符。
如何避免这种行为?
我有一个66000项itemsSource的WPF组合框控件。为了提高加载性能,我使用了VirtualizingStackPanel并且没问题,但现在我又遇到了另一个问题。使用数千个项目优化WPF组合框搜索
ComboBox是可编辑的,当我在TextBox上键入时,它开始搜索SelectedItem以匹配...但它很慢,并且不会立即响应输入的字符。
如何避免这种行为?
使用VirtualizingStackPanel只能确保你将有UI虚拟化技术的但在你的情况下,作为BoltClock可能想指出,你可能需要考虑实施DataVirtualization,以及...
什么布鲁诺基本说:
在MSDN上了解了更多关于它: http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.aspx
下面的代码注意你需要在你的其他绑定添加...:
<ItemsPanelTemplate x:Key="VirtualPanel">
<VirtualizingStackPanel />
</ItemsPanelTemplate>
<ComboBox ItemsPanel="{DynamicResource VirtualPanel}">
,也可以手动将它添加...
<ComboBox VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate >
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
使用VirtualizingStackPanel.VirtualizationMode="Recycling"
这将重用的项目,而不是容器创建和丢弃物品的容器,并提高性能。
首先在组合框中做66,000个项目是什么? – BoltClock 2011-05-17 08:05:59
这是一个带有客户列表的组合框,共有66000个项目 – 2011-05-17 08:35:47