WPF中海量数据绑定Combobox
我正在尝试将组合框与自定义对象列表绑定。我的对象列表有大约 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;
allEmployee 有大约 15K 条记录。 任何人都可以建议我如何提高组合框的性能吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是糟糕的 UI 设计:没有用户会阅读 15K 条记录。
您可以通过允许用户在显示结果之前输入一些过滤条件来提高性能,例如,使用 AutoCompleteBox 而不是 ComboBox。
That's bad UI design: No user will read through 15K records.
You can improve the performance by allowing the user to enter some filter criteria before showing the results, for example, by using an AutoCompleteBox instead of a ComboBox.
您可以尝试使用
VirtualizingStackPanel
,如下所述 - http://vbcity.com/blogs/xtab/archive/2009/12/15/wpf-using-a-virtualizingstackpanel-to-improve-combobox-performance.aspx正如其他人所说也就是说,您确实想重新想象您的 UI,因为 ComboBox 不适合 15k 条记录。
You could try a
VirtualizingStackPanel
as described here - http://vbcity.com/blogs/xtab/archive/2009/12/15/wpf-using-a-virtualizingstackpanel-to-improve-combobox-performance.aspxAs others have said, you really want to re-imagine your UI, as a ComboBox isn't appropriate for 15k records.
尝试使用
VirtualizingStackPanel
作为ComboBox
的ItemsPanel
。Try using a
VirtualizingStackPanel
asItemsPanel
for theComboBox
.