将默认值添加到组合框的 0 索引不起作用

问题描述 投票:0回答:1

我有一个代码,其中组合框绑定在那里。

 public static void BindDropDownData(DataTable dtRecords, ComboBox dropDownListId, string textColumnName, string valueColumnName)
        {
            try
            {
                dropDownListId.DataSource = dtRecords;
                dropDownListId.DisplayMember = dtRecords.Columns[textColumnName].ToString();
                dropDownListId.ValueMember = dtRecords.Columns[valueColumnName].ToString();
                dropDownListId.Items.Insert(0, "Select");

            }
            catch (Exception)
            {

                throw;
            }
        }

当我运行此代码时,它给了我一个错误

System.ArgumentException:“设置 DataSource 属性时无法修改项目集合。”

我无法将虚拟-Select-记录添加到数据库中。怎么处理这个问题?

winforms combobox
1个回答
0
投票

您可以创建变量的副本:DataTable dtRecords。 添加一条值为“Select”和“0”的记录。

    public static void BindDropDownData(DataTable dtRecords, ComboBox dropDownListId, string textColumnName, string valueColumnName)
    {
        try
        {
            DataSource cloneDataTable = dtRecords;
            cloneDataTable.Insert(0, new DataTable(){ textColumnName = "Select", valueColumnName = "0"});
            dropDownListId.DisplayMember = cloneDataTable.Columns[textColumnName].ToString();
            dropDownListId.ValueMember = cloneDataTable.Columns[valueColumnName].ToString();
            

        }
        catch (Exception)
        {

            throw;
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.