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表上的键
你可以帮帮我吗?! 非常感谢你答案 0 :(得分:0)
列表框未检测到您更改了DataSource。它只会在Datasource发生更改时刷新,因此请先将DataSource设置为null:
listBox1.DataSource = null;
listBox1.DataSource = data;
您也可以清除这些项目,然后再次设置DataSource:
listBox1.Items.Clear();
listBox1.DataSource = data;