将数据从Listbox1复制到Listbox2

时间:2014-03-09 15:15:50

标签: c# mysql listbox selecteditem

在c#中我有一个像这样的listbox1:

lstCorsoAll.DisplayMember = "description";
lstCorsoAll.ValueMember = "id";
lstCorsoAll.DataSource = dtData;

其中dtData是一个SQL查询的DataTable。

我想使用按钮将listbox1中的所选项目复制到listbox2。

如果我使用此代码:

foreach (object item in listBox1.SelectedItems)
{
    listBox2.Items.Add(item);
}
在listbox2中

我总是得到System.data.datarowview,因为listbox1.SelectedItems是一个DataRowView

所以我用过:

listbox2.DataSource = listbox1.SelectedItems;
listbox2.DisplayMember = listbox1.DisplayMember;
listbox2.ValueMember = listbox1.ValueMember; 

它工作正常(我得到正确的显示值),但如果重复操作(我从listbox1中选择一个新值)并按下按钮,listbox2中的项目总是相同的,listbox2不会更新。< / p>

在此之后,我想将listbox2中的项目保存到DB,使用listbox2项valueMember作为MySQL表上的键

你可以帮帮我吗?! 非常感谢你

1 个答案:

答案 0 :(得分:0)

列表框未检测到您更改了DataSource。它只会在Datasource发生更改时刷新,因此请先将DataSource设置为null:

listBox1.DataSource = null;
listBox1.DataSource = data;

您也可以清除这些项目,然后再次设置DataSource:

listBox1.Items.Clear();
listBox1.DataSource = data;