0

我正在使用 VS2010、C#、.Net 4.0 和 WinFormApplication。

我有一个从数据源填充的列表框。我想在双击时删除一个项目。

我在某处读到,如果我从数据源填充列表框,则无法删除任何项目。这是真的?如果没有,那么我该如何删除单个项目?

我尝试了以下方法:

listbox1.Items.Remove(listbox1.SelectedIndex);

listbox1.Items.Remove(listbox1.SelectedIndex);

lbTableColumns.Items.Remove(lbTableColumns.SelectedItem);

导致以下错误:

错误:设置 DataSource 属性时无法修改 Items 集合。

4

1 回答 1

0

使用 a 时DataBinding,您无法从 中删除项目ListBox,就像错误状态一样。如果对象在 中发生更改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();
}
于 2012-12-12T08:46:54.543 回答