在WPF中绑定大量数据的下拉框

3

我正在尝试将下拉框与自定义对象列表绑定。我的对象列表大约有15K个记录,点击下拉框后显示数据需要很长时间。

以下是代码:

<ComboBox Height="23" Name="comboBox1" Width="120" DisplayMemberPath="EmpName" SelectedValue="EmpID" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"/>

后台代码:

List<EmployeeBE> allEmployee = new List<EmployeeBE>();
allEmployee = EmployeeBO.GetEmployeeAll();
 comboBox1.ItemsSource = allEmployee;

所有员工大约有15K条记录。有人能建议我如何提高下拉框的性能吗?


1
考虑不要使用 ComboBox。带有 15k 条记录的 ComboBox 导航起来非常困难! - Arcturus
3个回答

5

这是糟糕的UI设计:没有用户会阅读15K条记录。

您可以通过允许用户在显示结果之前输入一些过滤条件来提高性能,例如使用AutoCompleteBox代替ComboBox。


同意,AutoCompleteBox 或者启用了文本搜索的适当 ListBox 绝对是解决方案。 - Damascus

4

0
尝试将VirtualizingStackPanel作为ComboBoxItemsPanel
<ItemsPanelTemplate x:Key="ComboBoxItemsPanelTemplate"> 
   <VirtualizingStackPanel/> 
</ItemsPanelTemplate>

<ComboBox ItemsPanel="{StaticResource ItemsTemplate}"/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接