我有一个带有66000项itemsSource的WPF ComboBox控件。为了提高加载性能,我使用了VirtualizingStackPanel,没关系,但现在我还有另一个问题。
ComboBox是可编辑的,当我在TextBox上键入时,它开始搜索SelectedItem以匹配...但它很慢并且不会立即响应键入的字符。
如何避免这种行为?
答案 0 :(得分:5)
布鲁诺基本上说了什么:
在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>
答案 1 :(得分:0)
使用VirtualizingStackPanel只能确保您拥有 UI Vitualization ,但在您的情况下,正如BoltClock可能想要指出的那样,您可能还需要考虑实施 DataVirtualization 。 ..
答案 2 :(得分:0)