WPF中海量数据绑定Combobox

发布于 2024-11-19 01:29:34 字数 559 浏览 2 评论 0 原文

我正在尝试将组合框与自定义对象列表绑定。我的对象列表有大约 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 条记录。 任何人都可以建议我如何提高组合框的性能吗?

I am trying to bind combobox with custom object list. My object list have around 15K record and combobox takes long time to show the data after clicking on combobox.

Below are the code:

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

code behind:

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

allEmployee have around 15K record.
Can any one Suggest how can I improve my combobox performance?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

江湖正好 2024-11-26 01:29:34

这是糟糕的 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.

叹梦 2024-11-26 01:29:34

您可以尝试使用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.aspx

As others have said, you really want to re-imagine your UI, as a ComboBox isn't appropriate for 15k records.

記憶穿過時間隧道 2024-11-26 01:29:34

尝试使用VirtualizingStackPanel作为ComboBoxItemsPanel

<ItemsPanelTemplate x:Key="ComboBoxItemsPanelTemplate"> 
   <VirtualizingStackPanel/> 
</ItemsPanelTemplate>

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

Try using a VirtualizingStackPanel as ItemsPanel for the ComboBox.

<ItemsPanelTemplate x:Key="ComboBoxItemsPanelTemplate"> 
   <VirtualizingStackPanel/> 
</ItemsPanelTemplate>

<ComboBox ItemsPanel="{StaticResource ItemsTemplate}"/>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文