1

我需要你帮助解决我的问题。当我在我的代码中使用列表框 ItemSource 时,不允许删除选定的项目。在不使用 ListBox ItemsSource 的情况下,删除操作正在工作。为什么?请给我你的灵魂代码。我需要为列表框包含 ItemsSource。感谢一百万次!哦,是的,我正在使用 C# 4.5 和 WPF。

    public SendEmail(List<string> items, ItemCollection needsItems)
    : this()
    {
        _needList = needsItems;

        lstNeeds.ItemsSource = _needList;
    }

  //Remove selected Items not working

 if (lstNeeds.SelectedItem != null)
    {

      for (int i = lstNeeds.SelectedItems.Count - 1; i >= 0; i--)
       {
         lstNeeds.Items.Remove(lstNeeds.SelectedItems[i]);
       }
    }

在此处输入图像描述

4

2 回答 2

2

您正在尝试从您正在迭代的集合中删除一个项目。

于 2013-06-19T14:27:34.987 回答
0

尝试这个:

if (lstNeeds.SelectedItem != null)
{
    List<Int32> selIdx = new List<Int32>();
    foreach (var item in lstNeeds.SelectedItems)
        selIdx.Add(lstNeeds.Items.IndexOf(item);
    selIdx.Sort();  //necessary?
    for (Int32 idx = selIdx.Count - 1; i >= 0; i--)
    {
        lstNeeds.Items.RemoveAt(selIdx[i]);
    }
}
于 2013-06-19T14:32:38.080 回答