for (int i = listView1.SelectedItems.Count - 1; i >= 0; i--)
{
ListViewItem item =listView1.SelectedItems[i];
listView1.Items.Remove(item);
}
listView1.Refresh();
{
ListViewItem item =listView1.SelectedItems[i];
listView1.Items.Remove(item);
}
listView1.Refresh();
{
if (this.LVCompany.Items[i].Checked == false)
continue;
this.LVCompany.Items[i].Remove();
}
这个是根据是否选中为条件来进行删除的
if (this.listView1.Items > 0)
{
foreach (ListViewItem item in this.listView1.SelectedItems)
{
this.listView1.Items.Remove(item);
}
}
this.listView1.EndUpdate();
或直接 this.listView1.SelectedItems.Clear();
{
this.myListBox.Items.Remove(this.myListBox.SelectedItems[0]);
}
{
if (this.myListBox.GetSelected(i))
{
this.myListBox.Items.RemoveAt(i);
}
}
安心用吧,关键点在于倒序
System.InvalidOperationException
Operation is not valid while ItemsSource is in use. Access and modify elements with ItemsControl.ItemsSource instead.
?WPF,System.Windows.Controls(not Forms).ListBox/ListView?是的话,就往下看(这里我用ListView, ListBox应该也差不多)。假定ListView里每一行对应一个MyItem,MyCollection 定义如下:
public class MyCollection: ObservableCollection<MyItem>如果想remove,像这样(myListView 是一个ListView对象):ICollectionView view = (ICollectionView)CollectionViewSource.GetDefaultView(myListView.ItemsSource);
MyCollection items = (MyCollection)view.SourceCollection;
items.RemoveAt(...); // 或者Remove() ...
{
MessageBox.Show("未发现!", "提示");
return;
}
else
{
if (listView1.SelectedItems.Count == 0)
{
MessageBox.Show("Please select!", "Attention");
return;
}
}
if (listView1.SelectedItems.Count != 0)
{
foreach (ListViewItem lv in listView1.SelectedItems)
{ this.listView1.Items.Remove(lv);
}
}