The issue is that the SelectedIndexChanged event is called both when the user makes the change and when the change is made by the application code setting SelectedItem.
Is there a way to tell if the item was changed by the direct actions of the user from the mouse or keyboard?