点击按钮(删除)时,我试图删除列表中的特定项目(人物)。相反,只删除listview(listName)上的显示。当我创建另一个名称时,我删除的先前名称将再次显示在lisview上。
public void remove(object sender, EventArgs e)
{
foreach (ListViewItem eachItem in listName.SelectedItems)
{
listName.Items.Remove(eachItem);
}
}
答案 0 :(得分:0)
您应该在枚举时列出要删除的项目列表,然后使用该列表实际删除它们,以避免在枚举时修改集合(因为修改Items
实际上也在修改SelectedItems
目前正在列举):
public void remove(object sender, EventArgs e)
{
var itemsToDelete = new List<ListViewItem>();
foreach (ListViewItem eachItem in listName.SelectedItems)
{
itemsToDelete.Add(eachItem);
}
foreach (ListViewItem eachItem in itemsToDelete)
{
listName.Items.Remove(eachItem);
}
}
答案 1 :(得分:0)
您只需使用List<T>.RemoveAll
即可完成此操作。
listName.RemoveAll(x => x.Selected)