【问题标题】:Adding hundreds of entries into a combobox将数百个条目添加到组合框中
【发布时间】:2021-03-11 20:06:07
【问题描述】:

我有超过 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 时,应用程序启动时会出现明显的延迟/延迟,第一次打开组合框时也会出现延迟。

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

【问题讨论】:

标签: c# wpf list dictionary combobox


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    相关资源
    最近更新 更多