使用 DataSet 绑定数据时向 ComboBox 添加默认项 - WinForm
Add default item to ComboBox while binding data with DataSet - WinForm
我在 windows 表单中绑定 ComboBox 的代码是这样的
ddlUsers.DataSource = dsUsers.Tables[0];
ddlUsers.ValueMember = "userID";
ddlUsers.DisplayMember = "Username";
我想添加一个默认项作为此组合框的第一个元素,我已经尝试过类似的方法
ddlUsers.Items.Insert(0, "-Select a user-");
但是它会抛出这样的错误。
Items collection cannot be modified when the DataSource property is set.
谁能指出实现此目标的正确方法?
您可以先将 dsUsers.Tables[0] 的内容插入到列表中,添加您的手动项目,然后将该列表绑定为数据源,而不是直接将 dsUsers.Tables[0] 绑定。
您必须以这种方式在 table 中添加行:
DataRow newRow = dataSet1.Tables[0].NewRow();
newRow["userID"] = 0;
newRow["Username"] = "-Select a User-";
dataSet1.Tables[0].Rows.Add(newRow);
然后给组合源:
ddlUsers.DataSource = dsUsers.Tables[0];
ddlUsers.ValueMember = "userID";
ddlUsers.DisplayMember = "Username";
有关详细信息,请参阅 this MSDN article
在顶部插入一个新的 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";
请试试这个:
DataTable dt = (DataTable)cmbControl.DataSource;
DataRow dr = dt.NewRow();
dr["UserName"] = "---Select User----";
dr["UserID"] = "0";
dt.Rows.InsertAt(dr, 0);
Insert row into datatable and use method InsertAt
我在 windows 表单中绑定 ComboBox 的代码是这样的
ddlUsers.DataSource = dsUsers.Tables[0];
ddlUsers.ValueMember = "userID";
ddlUsers.DisplayMember = "Username";
我想添加一个默认项作为此组合框的第一个元素,我已经尝试过类似的方法
ddlUsers.Items.Insert(0, "-Select a user-");
但是它会抛出这样的错误。
Items collection cannot be modified when the DataSource property is set.
谁能指出实现此目标的正确方法?
您可以先将 dsUsers.Tables[0] 的内容插入到列表中,添加您的手动项目,然后将该列表绑定为数据源,而不是直接将 dsUsers.Tables[0] 绑定。
您必须以这种方式在 table 中添加行:
DataRow newRow = dataSet1.Tables[0].NewRow();
newRow["userID"] = 0;
newRow["Username"] = "-Select a User-";
dataSet1.Tables[0].Rows.Add(newRow);
然后给组合源:
ddlUsers.DataSource = dsUsers.Tables[0];
ddlUsers.ValueMember = "userID";
ddlUsers.DisplayMember = "Username";
有关详细信息,请参阅 this MSDN article
在顶部插入一个新的 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";
请试试这个:
DataTable dt = (DataTable)cmbControl.DataSource;
DataRow dr = dt.NewRow();
dr["UserName"] = "---Select User----";
dr["UserID"] = "0";
dt.Rows.InsertAt(dr, 0);
Insert row into datatable and use method InsertAt