【问题标题】:How to improve performance of loading a lot of records to WPF dropdownlist?如何提高将大量记录加载到 WPF 下拉列表的性能?
【发布时间】:2014-02-05 01:27:47
【问题描述】:

我是 WPF 应用程序的新手。我已经构建了一个连接到在线数据库的应用程序,这意味着我将我的数据库托管在托管服务器 (SQL Server) 上,并且我的 WPF 应用程序在本地运行。

当我打开我的应用程序时,我有超过 1000 条记录,这些记录将被加载到组合框中。问题是加载这些记录要花费超过 5 分钟。有没有人知道任何其他方法可以使它更快?

【问题讨论】:

  • 到目前为止您的个人资料是什么?哪个部分慢? Server? Client?
  • 是WPF慢还是你的数据库?我怀疑是后者,所以你需要在这方面进行改进。要进行测试,请尝试加载 10 条和 100 条记录而不是全部 1000 条记录,看看它如何影响性能。
  • 旁注:从 UI 的角度来看,组合框/下拉列表/列表中的 1000 个项目通常无法使用...确保您确实需要直接加载所有项目(如果您没有那里有未绑定的项目数)。

标签: c# sql wpf performance


【解决方案1】:

ComboBox 默认没有启用UI Virtualization

这样做的原因是ComboBox 并不是真正打算显示大量项目。

要启用它,请更改ItemsPanel

<ComboBox ...>
    <ComboBox.ItemsPanel>
        <ItemsPanelTemplate>
           <VirtualizingStackPanel />
        </ItemsPanelTemplate>
    </ComboBox.ItemsPanel>
</ComboBox>

但是请记住,在 ComboBox 中显示超过 20 个项目将导致非常痛苦的用户体验。

您确实应该考虑更改为 ListBox 或其他更适合显示大型项目列表的 UI 元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2021-10-31
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    相关资源
    最近更新 更多