DataGridView:使用数组或List <t> </t>添加新行

时间:2013-01-11 15:37:13

标签: c# list datagridview

我的表单中有两个listbox元素。 listbox1中的项目表示我的DataGridView中的列, 我的listbox2中的项目代表我的DataGridView中的行。

foreach (var el in listBox1Elements)
{
// code...
dataGridView1.Columns.Add(col);
}

由于可以添加或删除listbox1中的项目,因此我的当前解决方案存在问题。

dataGridView1.Rows.Add("test","some","data","even","more","data");

我想知道是否有使用List的解决方案。 然后我的代码看起来像这样:

foreach (var el in listBox2Elements)
{
   myList.add("some text");
}
dataGridView1.Rows.Add(myList);

3 个答案:

答案 0 :(得分:6)

这样的东西
        foreach (var el in listBox2Elements)
            myList.add("some text");

        foreach (var item in myList)
            dataGridView1.Rows.Add(item.., item.., item..);

dataGridView1.DataSource = myList.ToList()

答案 1 :(得分:1)

怎么样:

foreach (var el in listBox2Elements)
{
   myList.add("some text");
}
dataGridView1.Rows.Add(myList.ToArray());

答案 2 :(得分:0)

这是一个没有商店对象的艰巨任务。 你可以轻松地去:

//Not taking guarantee for this approach
Store.DataSource.add(new object[]{"some text"});
Store.DataBind();

或者你定义一个新的数据源对象并用列表项填充它(通过循环)并在执行之后再次执行:

(list<string>) data_list.add("some text");
//repopulate data object and set a Store.DataSource;
Store.dataBind();

并删除对象,您可以从list<string>项中删除它们,并像上面一样更新商店

//population for the data object:
for(int x=0; x<= data_list.length(); x++)
{
 data.add(new object[]{data_list[x]});
}