将数百个条目添加到组合框中

Adding hundreds of entries into a combobox

我有 300 多个条目要从我的 WPF 应用程序中的字典添加到组合框。

public Dictionary<int, string> NameList()
{
        Dictionary<int, string> names = new Dictionary<int, string>
        {
            { 1, "John Johnson" }
        }
}

该词典一直到 382(如果有更好的替代使用词典的方法,请告诉我并说明原因 :))

在我的 MainWindow 构造函数中,我有一个 void 方法 LoadNames(),其中包含:

this.Dispatcher.Invoke(() =>
        {
            NameComboBox.ItemsSource = NameList().Values;
        });

但是,当打开 MainWindow 时,应用程序启动时会出现明显的 lag/delay,并且在首次打开组合框时也会出现延迟。

有没有更好的方法来实现这个,可能是异步的?谢谢!

我发现实现此方案解决方案的最佳方法是让您的组合框实现带有虚拟化堆栈面板的项目面板模板。另外使用后台工作进程加载组合框。我已经用包含 1000 个项目的组合框实现了这个。