For those doing pure MVVM, how do you handle a ComboBox SelectionChanged event without reverting to code behind?
I tried e.g. AttachedBehaviors but Event="SelectedChanged" is not supported:
<ComboBox> <ComboBoxItem Content="Test1"> <c:CommandBehaviorCollection.Behaviors> <c:BehaviorBinding Event="SelectionChanged" Command="{Binding SelectedChanged}" CommandParameter="MainBorder123"/> </c:CommandBehaviorCollection.Behaviors> </ComboBoxItem> <ComboBoxItem Content="Test2"/> <ComboBoxItem Content="Test3"/> </ComboBox>
You can use "ComboBoxItem. PreviewMouseDown" event.
A combobox is a selection control that combines a non-editable textbox and a drop-down listbox that allows users to select an item from a list. It either displays the current selection or is empty if there is no selected item.
This post is quite old, but since I got the same issue. Here is how I solved it (using framework 4.0) : the idea is to use System.Windows.Interactivity.
In the XAML :
<ComboBox ItemsSource="{Binding Items}"> <i:Interaction.Triggers> <i:EventTrigger EventName="SelectionChanged"> <i:InvokeCommandAction Command="{Binding SelectionChangedCommand}"/> </i:EventTrigger> </i:Interaction.Triggers> </ComboBox>
Then you just need to implement the SelectionChangedCommand in your viewmodel.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With