从winform中的列表框中删除项目

时间:2012-12-12 07:26:17

标签: c# winforms listbox

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

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

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

我尝试了以下内容:

listbox1.Items.Remove(listbox1.SelectedIndex);

listbox1.Items.Remove(listbox1.SelectedIndex);

lbTableColumns.Items.Remove(lbTableColumns.SelectedItem);

会导致以下错误:

  

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

1 个答案:

答案 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();
}