为什么Winforms中的所有不同集合?

时间:2009-03-03 09:51:48

标签: c# winforms

如果我想在组合框中显示10 000个项目(仅作为示例),从磁盘加载List很快,但是当我设置DataSource时它很慢。有没有办法只指向数据而不是将其转换为组合框集合。

List<string> myitems = getItems();

ComboBox box = new ComboBox();
box.DataSource = myitems;        // <--- Takes a long time

来自Delphi的所有内容都是StringList我发现所有不同的集合有点奇怪,为什么他们不只是使用List<T>或其他一些未与控件紧密耦合的类?

在德尔福:

textbox.lines = myitems
listbox.items = myitems
combobox.items = myitems

只需设置指向相同数据的指针,即即时。

1 个答案:

答案 0 :(得分:1)

底层Windows组合控件(与其他几个一样)可以在“虚拟”模式下运行,在该模式下按需填充,无需预加载大量项目。这样可以节省内存和时间,并允许使用非常长的内容列表。

不幸的是,本机WinForm控件似乎不支持这种操作模式,但可能有不同的包装器可用?