如何提高将大量记录加载到WPF下拉列表的性能?

时间:2014-02-05 01:27:48

标签: c# sql wpf performance

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

当我打开我的应用程序时,我有超过1000个项目记录,这些记录将加载到组合框中。问题是它花费超过5分钟来加载这些记录。有没有人知道其他方法让它更快?

1 个答案:

答案 0 :(得分:6)

ComboBox默认情况下未启用UI Virtualization

原因是ComboBox并非真正意图显示大量项目。

要启用它,请更改ItemsPanel

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

但请注意,在ComboBox中显示超过20个项目会导致真正痛苦的用户体验。

您应该考虑更改为更适合显示大型商品列表的ListBox或其他类型的UI元素。