Sib*_*Guy 4 .net wpf performance xaml combobox
我有一个WPF表单,其中包含30x30网格,其中每个网格单元格为a ComboBox.ComboBox值和选定的值是绑定的DataContext.问题是它变得非常缓慢.我重新编写了表单,以便显示文本框而不是组合框(并在鼠标输入时TextBox转换为文本框ComboBox),它现在可以立即生效.
为什么ComboBoxes这么慢?有没有办法改善ComboBoxes的大规模绑定?
ComboBoxVirtualizingStackPanel默认情况下不使用virtualization(),您可以通过一种非常简单的方式更改控件使用的面板:
<ComboBox ItemsSource="{Binding}">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
如果ComboBox有成千上万的项目,这对提高性能有很大帮助,不确定在你的情况下有多少帮助,因为有1000个组合框用于UI.
您还可以尝试将这些组合框放在虚拟化面板中(如ListBox或直接使用VirtualizedStackpanel).
您可以尝试的另一件事是ComboBox ItemSource使用IsAsync属性使绑定异步.
我希望你ObservableCollection用作你的ItemSource;
| 归档时间: |
|
| 查看次数: |
193 次 |
| 最近记录: |