如果我想在组合框中显示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
只需设置指向相同数据的指针,即即时。
答案 0 :(得分:1)
底层Windows组合控件(与其他几个一样)可以在“虚拟”模式下运行,在该模式下按需填充,无需预加载大量项目。这样可以节省内存和时间,并允许使用非常长的内容列表。
不幸的是,本机WinForm控件似乎不支持这种操作模式,但可能有不同的包装器可用?