我使用BindingList作为ListBox的数据源。
public static BindingList<memo> memosList = new BindingList<memo>();
每当我尝试删除所选对象(通过按钮)时,我的程序崩溃。
private void editMemo_Click(object sender, EventArgs e)
{
listBox1.Items.Remove(listBox1.SelectedItem);
}
我收到以下错误:
发生了'System.ArgumentException'类型的未处理异常 System.Windows.Forms.dll中
附加信息:项目集合时无法修改 已设置DataSource属性。
我也尝试过使用:
private void editMemo_Click(object sender, EventArgs e)
{
Form2.memosList.Remove(listBox1.SelectedIndex);
}
然而这不允许我编译。
如何在不抛出异常的情况下删除该项目?
答案 0 :(得分:2)
您应该将已绑定的BindingList中的项目移除到列表的DataSource
private void editMemo_Click(object sender, EventArgs e)
{
if(listBox1.SelectedItem != null)
{
BindingList<memo> bl = listBox1.DataSource as BindingList<memo>;
bl.Remove(listBox1.SelectedItem as memo) ;
}
}