【问题标题】:Add default item to ComboBox while binding data with DataSet - WinForm使用 DataSet 绑定数据时将默认项添加到 ComboBox - WinForm
【发布时间】:2015-06-12 07:49:01
【问题描述】:

我在 windows 窗体中绑定 ComboBox 的代码是这样的

  ddlUsers.DataSource = dsUsers.Tables[0];
  ddlUsers.ValueMember = "userID";
  ddlUsers.DisplayMember = "Username";

我想在这个 ComboBox 中添加一个默认项作为第一个元素,我已经尝试过类似的方法

  ddlUsers.Items.Insert(0, "-Select a user-");

但它会抛出这样的错误。

Items collection cannot be modified when the DataSource property is set.

谁能指出实现这一目标的正确方法?

【问题讨论】:

    标签: c# .net winforms combobox


    【解决方案1】:

    您必须以这种方式在表格中添加行:

    DataRow newRow = dataSet1.Tables[0].NewRow();
    
    newRow["userID"] = 0;
    newRow["Username"] = "-Select a User-";
    
    dataSet1.Tables[0].Rows.Add(newRow);
    

    然后给combo提供source:

     ddlUsers.DataSource = dsUsers.Tables[0];
     ddlUsers.ValueMember = "userID";
     ddlUsers.DisplayMember = "Username";
    

    更多信息请参考this MSDN article

    【讨论】:

      【解决方案2】:

      请试试这个:

      DataTable dt = (DataTable)cmbControl.DataSource;
            DataRow dr = dt.NewRow();
            dr["UserName"] = "---Select User----";
            dr["UserID"] = "0";
      
            dt.Rows.InsertAt(dr, 0);
      

      将行插入数据表并使用方法InsertAt

      【讨论】:

        【解决方案3】:

        您可以先将 dsUsers.Tables[0] 的内容插入到 List 中,添加手动项,然后将该 List 绑定为 DataSource 而不是 dsUsers.Tables[0] 直接。

        【讨论】:

          【解决方案4】:

          在顶部插入一个新的Row。

          dr = dsUsers.Tables[0].NewRow();
          dr[userID] = "0";
          dr[Username] = "-Select a User-";
          dsUsers.Tables[0].Rows.InsertAt(dr,0);
          

          你可以像往常一样设置你的来源

          ddlUsers.DataSource = dsUsers.Tables[0];
          ddlUsers.ValueMember = "userID";
          ddlUsers.DisplayMember = "Username";
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多