在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...!!";
        }
    }

请。给我这个问题的解决方案。

在C#Windows中设置DataSource属性时,无法修改Items集合

在绑定到测试作为数据源之前,您需要将"Select One"值添加到测试字典中。

test.Add("Select One ","Select One ");

然后

this.cmbCity.DataSource = new BindingSource(test, null);