在C#Windows中设置DataSource属性时,无法修改Items集合
本文关键字:修改 Items 集合 C#Windows 设置 DataSource 属性 | 更新日期: 2023-09-27 18:00:47
我正试图将第一个值作为"Select One"插入/添加到C#Windows窗体应用程序中的组合框中。组合框样式为"下拉列表"。
我正在从数据库中获取城市数据并绑定组合框。
我知道我已经将1个数据源设置为combobox,并再次尝试添加。我想动态添加"Select One",如何做到这一点?
这是填充城市代码。
public void Fill_CitiesDDL()
{
try
{
cmbCity.Items.Clear();
DataSet ds = new DataSet();
ds = Select_Cities();
ds.DataSetName = "Tbl_City";
if (ds.Tables.Count > 0)
{
if (ds.DataSetName == "Tbl_City" && ds.Tables[0].Rows.Count > 0)
{
Dictionary<string, string> test = new Dictionary<string, string>();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
test.Add(ds.Tables[0].Rows[i]["City_Name"].ToString(), ds.Tables[0].Rows[i]["City_Id"].ToString());
}
this.cmbCity.DataSource = new BindingSource(test, null);
this.cmbCity.DisplayMember = "Key";
this.cmbCity.ValueMember = "Value";
this.cmbCity.Items.Add("Select One ");--->Error is Coming at this Point
}
else
{
lblEmployerError.Text = "No data for City";
}
}
else
{
lblEmployerError.Text = "City Table does not exists";
}
}
catch (NullReferenceException nr)
{
lblEmployerError.Text="Null value exception caused, try again later..!!";
}
catch (SqlException sql1)
{
lblEmployerError.Text="Connection to server failed or network problem..!!";
}
catch (Exception ex)
{
lblEmployerError.Text="Fatal error catched, contact system administrator...!!";
}
}
请。给我这个问题的解决方案。
在绑定到测试作为数据源之前,您需要将"Select One"值添加到测试字典中。
test.Add("Select One ","Select One ");
然后
this.cmbCity.DataSource = new BindingSource(test, null);