Это происходит при попытке изменить ObservableCollection<T>
, привязанный к ListBox, например. Это, как вы имеете дело с этим:
ObservableCollection<Employee> itemsToRemove = new ObservableCollection<Employee>();
foreach (Employee item in lsbxNames.SelectedItems)
{
itemsToRemove.Add(item);
}
foreach (Employee item in itemsToRemove)
{
((ObservableCollection<Employee>)lsbxNames.ItemsSource).Remove(item);
}
- Создать новую
ObservableCollection<T>
называется itemsToRemove
, с тем же T
как вашей коллекции, вы пытаетесь изменить.
- Итерируйте через свои узлы SelectedItems в своем ListBox. Добавьте их в
itemsToRemove
.
- Итерация через
itemsToRemove
. Извлеките ListBox ItemsSource в ObservableCollection<T>
и удалите совпадения в itemsToRemove
.
Ссылка: http://docs.telerik.com/devtools/wpf/controls/radgridview/managing-data/deleting-entry
Так что это означало бы, вы должны быть в состоянии сделать это:
ObservableCollection<cListEntry> itemsToRemove = new ObservableCollection<cListEntry>();
foreach (cListEntry item in MyList.SelectedItems)
{
itemsToRemove.Add(item);
}
foreach (cListEntry item in itemsToRemove)
{
((ObservableCollection<cListEntry>)MyList.ItemsSource).Remove(item);
}
Я не уверен, что _myList
есть, но вам не нужно, чтобы изменить его , Просто перейдите непосредственно в ListBox.
http://stackoverflow.com/questions/604831/collection-was-modified-enumeration-operation-may-not-execute –
Специально прочитайте этот комментарий .. http://stackoverflow.com/questions/604831/ collection-was-modified-enumeration-operation-may-not-execute # comment13168776_604843 –