4

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

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

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

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

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

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

3 回答 3

7

就像是

        foreach (var el in listBox2Elements)
            myList.add("some text");

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

或者

dataGridView1.DataSource = myList.ToList()
于 2013-01-11T16:06:37.537 回答
1

怎么样:

foreach (var el in listBox2Elements)
{
   myList.add("some text");
}
dataGridView1.Rows.Add(myList.ToArray());
于 2014-04-11T19:58:50.430 回答
0

好吧,如果没有 store 对象,那是一项艰巨的任务。你可以很容易地去那里:

//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]});
}
于 2013-01-11T15:42:05.403 回答