Potrzebuję pomocy w rozwiązaniu moich problemów. Kiedy korzystam z pola listy ItemSource w moim kodzie, wybranych elementów nie można usunąć. Bez użycia ListBox ItemsSource operacja usuwania działa. Dlaczego? Proszę, podaj mi swój kod duszy. Muszę dołączyć ItemsSource dla pola listy. Dzięki milion razy! O tak, używam C # 4.5 i 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]);
}
}
Odpowiedzi:
2 dla odpowiedzi № 1Próbujesz usunąć element z kolekcji, nad którą iterujesz.
0 dla odpowiedzi nr 2
Spróbuj tego:
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]);
}
}