代码之家  ›  专栏  ›  技术社区  ›  John M

是否将默认行插入绑定到数据表的组合框?

  •  0
  • John M  · 技术社区  · 14 年前

    在WinForm上,有一个组合框从数据表中派生其信息。数据表从数据库列表中提取。

    this.cboList.DataSource = pullData();
    this.cboList.DisplayMember = "fieldA";
    

    一旦设置了数据源,我就无法将默认行(ie*)作为组合框中的第一项插入。

    我试过这个:

    this.cboList.Items.Insert(0,"*");
    

    在设置数据源之后,是否有方法在组合框中插入数据,或者应该在数据表中插入?

    更新1:

    解决方案如下:

     var list = mydt.AsEnumerable().Select(row => row.Field<string>(fieldName)).ToList();
     list.Insert(0, "*");
    

    其中mydt是一个填充的数据表,field name是一个保存数据库字段名的变量。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Anthony Pegram    14 年前

    不要仅仅为了让您的用户界面工作而修改源代码中的数据。相反,在将列附加到组合框之前,可以将它提取到一个可以修改的列表中。

    var list = table.AsEnumerable().Select(row => row.Field<string>("fieldA")).ToList();
    list.Insert(0, "*");
    this.cboList.DataSource = list;
    
        2
  •  0
  •   dretzlaff17    14 年前

    如果“select none”或“*”是有效的select选项,则需要来自绑定源对象。在过去,我通过在将集合绑定到组合框之前向集合中添加默认记录来完成此操作。