I have a ListBox that is bound to an ObservableCollection. When I click on the item in the ListBox, I want to remove it from the ListBox, and make another UI element visible based on which ListBoxItem was selected. Here is my code so far;
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);
}
}
At present this method removes all filterItems from the ListBox regardless of what the _selectedItem.ID is equal to. What is strange is that if I add a MessageBox after the end of the Ifs it works correctly.