Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除项目后,WPF Listbox多选清除_C#_Wpf_Listbox - Fatal编程技术网

C# 删除项目后,WPF Listbox多选清除

C# 删除项目后,WPF Listbox多选清除,c#,wpf,listbox,C#,Wpf,Listbox,我在WPF中有一个带有数据索引Xml集合的列表框。我将SelectionMode设置为Extended,以便用户可以选择多个项目。我有一个removietem命令,它迭代selecteditem并从列表中删除它们: var selecteditems = this.SelectedItems; for(int i = 0; i < selecteditems.Count; i++ ) { ItemBox ouritem = (ItemBox)this.It

我在WPF中有一个带有数据索引Xml集合的列表框。我将SelectionMode设置为Extended,以便用户可以选择多个项目。我有一个removietem命令,它迭代selecteditem并从列表中删除它们:

   var selecteditems = this.SelectedItems;
   for(int i = 0; i < selecteditems.Count; i++ )
   {
        ItemBox ouritem = (ItemBox)this.ItemContainerGenerator.ContainerFromItem(this.SelectedItems[i]);
         XmlDataProvider prov = this.DataContext as XmlDataProvider;
         XmlNode MainNode = prov.Document.SelectSingleNode("//MainNode");
         MainNode.RemoveChild(selecteditems[i] as XmlNode);

   }
var selecteditems=this.selecteditems;
for(int i=0;i
问题在于,删除选择的第一项后,将清除该选择,并选择列表中的最后一项


如何保留开始时的选择并确保删除所有项目?

旧的“先复制”方法如何:

IList selectedItems = new List<YourDataType>();
foreach (YourDataType item in this.SelectedItems) selectedItems.Add(item);
for (int index = selectedItems.Count - 1; index >= 0; index--)
{
    // remove each selected item here
}
IList selectedItems=new List();
foreach(您在此.SelectedItems中的数据类型项)SelectedItems.Add(项);
对于(int index=selectedItems.Count-1;index>=0;index--)
{
//在此处删除每个选定项目
}

在反向迭代中执行循环

 var selecteditems = this.SelectedItems;
 for(int i = selecteditems.Count-1; i>=0; i-- )
 {
    ItemBox ouritem = (ItemBox)this.ItemContainerGenerator.ContainerFromItem(this.SelectedItems[i]);
     XmlDataProvider prov = this.DataContext as XmlDataProvider;
     XmlNode MainNode = prov.Document.SelectSingleNode("//MainNode");
     MainNode.RemoveChild(selecteditems[i] as XmlNode);

 }

谢谢简单快速的解决方案