代码之家  ›  专栏  ›  技术社区  ›  Smashery

ComboBox.DataSource数据源作业接受年龄

  •  1
  • Smashery  · 技术社区  · 14 年前

    我有以下代码:

    List<string> list = SomeFunction();
    this.myComboBox.DataSource = list;
    

    由于某些原因,当列表只包含4个项目时,对DataSource的赋值花费了惊人的时间(大约1.4秒)。

    知道为什么吗?

    编辑:

    SomeFunction() 在磁盘上的几个文件夹中查找是否存在某个特定的.xml文件,如果存在,则将包含该文件的文件夹名放入它返回的列表中。

    调查:

    Add() 将字符串直接连接到它。这个数据源在~200ms内执行,所以可能它毕竟不是数据源赋值,与 SomeFunction . 然而 ,然后我试着一个接一个地插入字符串,它在~0毫秒内执行。

    2 回复  |  直到 14 年前
        1
  •  0
  •   Smashery    14 年前

    那是在公园里 SelectedIndexChanged 事件处理程序,我正在加载一个文件。结果是一个任务 DataSource 成员将自动更改 SelectedIndex (假设返回到0,如果存在的话),而 Items.Add 不会这样做。

    在我的例子中,这是一个问题,因为我想手动选择要加载的项,所以它被加载了两次-一次是自动加载,因为赋值(不需要的)引起的事件,一次是手动加载。

        2
  •  -3
  •   Vyasdev Meledath    14 年前

    尝试将函数直接分配给组合框。

    如: