我正在使用VS2010,C#,。Net 4.0和WinFormApplication。
我有一个从数据源填充的列表框。我想在双击时删除一个项目。
我在某处读到如果我从数据源填充列表框,则不能删除任何项目。这是真的?如果没有,那么我该如何删除单个项目?
我尝试了以下内容:
listbox1.Items.Remove(listbox1.SelectedIndex);
listbox1.Items.Remove(listbox1.SelectedIndex);
lbTableColumns.Items.Remove(lbTableColumns.SelectedItem);
会导致以下错误:
错误:设置DataSource属性时无法修改项目集合。
答案 0 :(得分:0)
使用DataBinding
时,您无法从ListBox
中删除项目,就像错误所述。如果对象在DataSource
内发生变化但已从演示文稿中删除,会发生什么?
如果您正在使用DataSources,则需要从DataSource本身中删除该对象。尝试这样的事情:
IList<MyObj> myList = new List<MyObj>();
private void DataBind()
{
myListBox.BeginUpdate();
myListBox.DataSource = myList;
myListBox.EndUpdate();
}
private void OnMyListBoxItemDoubleClicked(object sender, EventArgs e)
{
myList.RemoveAt(myListBox.SelectedIndex);
DataBind();
}