从数据源填充Datagridview中的Combobox列

时间:2017-01-14 18:33:32

标签: datagridview datagridcomboboxcolumn

我需要你对C#datagridview的帮助。 我想从数据源生成datagridview。 数据网格视图有4列。 第1列:名字 第2栏:姓氏 第3栏:性别 第4栏:国家。 国家/地区列是组合框列。

我已相应地创建了数据源,并将数据源设置为网格。 前三列正在生成,但未添加组合框。  这是我的应用程序的示例代码

List<Mydataclass> dataclassList = new List<Mydataclass>();
for (int i = 0; i < 5; i++)
        {
            Mydataclass dataclass = new Mydataclass();
            dataclass.firstname = "firstname" + i;
            dataclass.secondname = "second name" + i;
            dataclass.gender = "gender" + i;
            dataclass.country = new string[] { "BD", "AUS"};

            dataclassList.Add(dataclass);

        }
BindingSource bindingSource1 = new BindingSource();

        bindingSource1.DataSource = dataclassList;
        dataGridView1.DataSource = bindingSource1;

当我运行应用程序时,数据网格显示为3列,但组合框列未生成。

请帮我找到问题。

提前致谢。

1 个答案:

答案 0 :(得分:1)

这对我有用:

// This is the list of items to be displayed in the DataGridView Combobox Column
string[] listOfItems = new string[]{"Apple", "Banana", "Orange"};

// Define a BindingSource and add the items to it (alas, there is no AddRange())
BindingSource bs = new BindingSource();

foreach (string item in listOfItems)
{
    bs.Add(item);
}

// Set binding (MyComboColumn is the name you gave to your combo column, see image below)
this.MyComboColumn.DataSource = bs;

enter image description here