Все элементы удаляются из listbox. itemssource
У меня есть список, который привязан к ObservableCollection. Когда я нажимаю на элемент в списке, я хочу удалить его из списка и сделать видимым другой элемент пользовательского интерфейса, основанный на том, какой элемент ListBoxItem был выбран.
В настоящее время метод удаляет все filterItems из списка, независимо от того, что _selectedItem.ID равен. Что странно, так это то, что если я добавлю MessageBox после окончания Ifs, он будет работать правильно.
Что я уже пробовал:
Вот мой код до сих пор;
private void OnAddToFilterLBSelectionChanged(object sender, SelectionChangedEventArgs e) { var _selectedItem = secondListBox.SelectedItem as FilterItem; if (_selectedItem != null) { if (_selectedItem.ID == 1) { currentItem.Visibility = Visibility.Visible; } else if (_selectedItem.ID == 2) { subbieItem.Visibility = Visibility.Visible; } else if (_selectedItem.ID == 3) { suppliersItem.Visibility = Visibility.Visible; } else if (_selectedItem.ID == 4) { plantHireItem.Visibility = Visibility.Visible; } else if (_selectedItem.ID == 5) { architectsItem.Visibility = Visibility.Visible; } else if (_selectedItem.ID == 6) { qsItem.Visibility = Visibility.Visible; } else if (_selectedItem.ID == 7) { projectManagerItem.Visibility = Visibility.Visible; } else if (_selectedItem.ID == 8) { structEngItem.Visibility = Visibility.Visible; } else if (_selectedItem.ID == 9) { servEngItem.Visibility = Visibility.Visible; } filterItems.Remove(_selectedItem); } }
[no name]
Узнайте, как использовать отладчик. Мы не можем пройти через код для вас.
DRD94
Если я установлю точку останова на линии filterItems.Remove (_selectedItem); и продолжайте, код работает именно так, как я ожидал. Если у меня нет точки останова, то все элементы удаляются и добавляются в первый список. Я никогда раньше не сталкивался с ситуацией, когда точка останова в отладчике, кажется, заставляет код работать правильно? То же самое относится и к добавлению потока.Спите (1000) тоже.
Maciej Los
Похоже, что listbox привязан к ObservableCollection. Когда вы удаляете какой-либо элемент из списка, observablecollection изменяется. Вы должны вызвать listbox, чтобы обновить его.
Проверить это: Как создать и привязать к ObservableCollection[^]