2010-08-10 90 views
0

此代码无法使用。它不会引发异常甚至做任何可见的事情。如何从列表框中删除多个项目?

private void RemoveSelectedFiles() 
{ 
    lstPhotos.Items.Remove(lstPhotos.SelectedItems); 
} 

如何从列表框中删除所选项目?

+0

Where和When RemoveSelectedFiles get called? – Marko 2010-08-10 01:27:14

回答

1

您必须一次删除一个项目。

编辑 - 作为@Smith指出,因为ListBox.SelectedItems绑定到Items集合代码将引发异常。从Items中删除选定的项目也将有效地将其从SelectedItems中删除,从而打破枚举。现在我们列举一个包含所选项目的独立列表:

private void RemoveSelectedFiles() 
{ 
    var selectedItems = new List<object>(lstPhotos.SelectedItems); 

    foreach (object item in selectedItems) 
     lstPhotos.Items.Remove(item); 
} 
+0

这段代码抛出一个错误,列举这个枚举器所绑定的列表已被修改。只有列表不变时,才能使用枚举器。“# – Smith 2011-12-29 20:05:21

+0

感谢您对此进行测试,@Smith。 – Humberto 2012-01-04 19:36:25