RoutedEvents Combobox not Firing

131 Views Asked by At

Hi could some kind person help. I have two user controls. One with a textbox, the other with a Combobox. The Main window will perform calculation routine as soon as combos and textboxes are modified. The Textbox version works, the ComboBox doesn't. The only difference I can see is Textbox uses TextChangedEventArgs whereas Combobox uses System.EventArgs

Any ideas? Thanks

// UserControl - with TextBox

public event RoutedEventHandler ucTextChanged;

        private void OnTextChanged(object sender, RoutedEventArgs e)
        {
            if (ucTextChanged != null)
            {
                ucTextChanged(this, new RoutedEventArgs());
            }
        }

       private void txtValue_TextChanged(object sender, TextChangedEventArgs e)
        {
            OnTextChanged(sender, e);
        }

// UserControl - ComboBox

      public event RoutedEventHandler ucComboChanged;


        private void OnComboChanged(object sender, RoutedEventArgs e)
        {
            if (ucComboChanged != null)
            {
                ucComboChanged(this, new RoutedEventArgs());
            }
        }

      private void ucCombo_DropDownClosed(object sender, System.EventArgs e)
        {
        OnComboChanged(sender, e);      
        }
1

There are 1 best solutions below

1
fede On

Try looking at the event SelectionChanged of the ComboBox ( https://learn.microsoft.com/en-us/dotnet/api/system.windows.controls.combobox.onselectionchanged )

XAML:

<ComboBox SelectionChanged="ucCombo_SelectionChanged"></ComboBox>

C#:

    private void ucCombo_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        // your code here...
        OnComboChanged(sender, e);
    }