我如何从Silverlight.observablecollection中删除多个项目?在我的项目中,我有一个数据网格填充了多个项目。在每一行中还包含一个复选框。如果我通过选择复选框并单击“删除”按钮选择了多行,我想从集合中删除所有项目。

public void delete(object parameter)
    {
      foreach (var x in Book)
        {
              if (x.Ischeck == true)
                 {
                    Book.Remove(x);
                  }
         }
     }

它导致错误。无法更改observablecollection

最佳答案

您可以改用下面提到的代码段:

foreach (var x in Book.ToList())
{
    if (x.Ischeck)
    {
        Book.Remove(x);
    }
}

或者
for (int i = Book.Count - 1; i >= 0; i--)
{
    if (Book[i].Ischeck)
    {
        Book.RemoveAt(i);
    }
}

10-08 02:04