从c#中的数据集绑定后,在combobox中插入项

vat*_*sal 16 c# combobox winforms

我必须在数据集绑定组合框之后在顶部插入"选择".我尝试了这个但是它不起作用.显示错误"数据集没有任何铸造定义".我想我没有正确使用它.评论代码是我尝试但不工作的部分.

cmbCategory.DataSource = dsCat.Tables[0];
cmbCategory.DisplayMember = "CategoryName";
cmbCategory.ValueMember = "ID";
// cmbCategory.Items.Add("Select");
// cmbCategory.SelectedText = "Select";
// cmbCategory.DataSource =(new object[] { "Select" }).Concat(this.liveReportingDalc.GetCategoriesByType(CategoryType.RegistrationType).Cast<object>()); 
Run Code Online (Sandbox Code Playgroud)

Vis*_*har 26

您必须插入要数据绑定的对象而不是组合框.您无法直接插入组合框.

你可以用这个:

DataTable dt = new DataTable();

dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("CategoryName");

DataRow dr = dt.NewRow();
dr["CategoryName"] = "Select";
dr["ID"] = 0;

dt.Rows.InsertAt(dr, 0);

cmbCategory.DisplayMember = "CategoryName";
cmbCategory.ValueMember = "ID";
cmbCategory.DataSource = dt;
cmbCategory.SelectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)

这是一个非常直截了当的例子.


Asi*_*taq 7

将项目ComboBox绑定到数据源后,无法添加项目.要ComboBox使用绑定数据源添加或删除项目,您必须通过数据源本身来完成.

您可以DataRow在表格中插入一个,它会自动添加到您的表格中ComboBox.请尝试以下方法:

 DataRow dr = dsCat.Tables[0].NewRow();
 dr["CategoryName"] = "Select";
 dr["ID"] = 123;// Some ID
 dsCat.Tables[0].Rows.Add(dr);
Run Code Online (Sandbox Code Playgroud)