I have a class derived from ItemsControl in which I implement my own selection-algorithm which uses the MouseLeftButtonDown to change the selection.
Now I needed a specific control to handle Mouseclicks in the ViewModel, so I wrote the following:
<controls:DraggableItemsContainer bla="blub">
<controls:DraggableItemsContainer.InputBindings>
<MouseBinding Gesture="LeftClick" Command="{Binding DeselectSubGroupsCommand}" />
</controls:DraggableItemsContainer.InputBindings>
</controls:DraggableItemsContainer>
What happens now is, that I don’t get the MouseLeftButtonDown-event anymore – which is comprehensable because the command “e.handles” the click.
But in this case, that’s not what I want. Is there a way to fire the event anyway?
PS: Yes I need to do the selection in the MouseLeftButtonDown-event and not in any Preview-event
Two options:
PreviewMouseDowninstead ofMouseDown.MouseDown, but do it by callingAddHandler, and passtruefor thehandledEventsTooparameter.If it’s important that you get notified after the
MouseBindinghas done its work, then you need to useAddHandler. If you’re okay with getting the message first,PreviewMouseDownis simpler.