在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不会更新。
之后,我想使用listbox2项目valueMember作为MySQL表上的键将listbox2中的项目保存到数据库中
你能帮我吗?
非常感谢你
最佳答案
列表框未检测到您已更改数据源。仅当数据源已更改时才会刷新,因此请首先将数据源设置为null:
listBox1.DataSource = null;
listBox1.DataSource = data;
您还可以清除项目,然后再次设置数据源:
listBox1.Items.Clear();
listBox1.DataSource = data;
关于c# - 将数据从Listbox1复制到Listbox2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22283966/