If I have a ComboBox that has a SelectionChanged event, it fires when I'm loading the control.
So at page load I set the SelectedValue and the SelectionChanged event fires which is not what I want to happen.
What is the accepted apporach to stopping this?
Two obvious solutions to this would be 1) Wait until the Loaded event of the Window/Page/UserControl which contains the ComboBox and hook up SelectionChanged there...eg in the constructor:
// set the inital selected index for the combo box here...
this.Loaded += (s, args) =>
{
cmbBox.SelectionChanged +=
new SelectionChangedEventHandler(HandleChanged);
};
or 2) Check that the ComboBox has loaded in the selection changed handler before doing anything and return if it hasn't...eg in the handler:
if (!cmbBox.IsLoaded)
return;
I would prefer number 1 as it doesn't require the check every time the SelectionChanged handler is fired.