Reputation: 10203
I'm displaying a Popup
in response to a button click (popup.IsOpen = true;
). The popup contains a ComboBox, and when I click an item in the combobox, one of the things the SelectionChanged event does is to hide the popup.
The Popup appears over a DataGrid
that I also have on my page, and I'm finding that the mouse-click on the combobox is also being picked up by a MouseUp event that I've got on the DataGrid. Any idea what's going on?
Upvotes: 6
Views: 2047
Reputation: 3749
I've hit the same issue. Oddly, it doesn't happen when the code is run in the debugger - it only happens in the release version. It really seems to be a bug in WPF. Trying to catch the click and set the event to handled doesn't work.
My workaround is to, when the popup opens, to tell the control underneath to ignore the click.
Upvotes: 0
Reputation: 1536
The MouseUp
Event has a routing strategy of type Bubbling
. Events that use this type of strategy get passed up the chain to parent controls. Since the Popup
is a child of the DataGrid
, the event will "bubble" up to the DataGrid
. If you would rather the event not bubble, you can try using PreviewMouseUp
, which has a Tunneling
routing strategy, and will "tunnel" down the chain to child controls. Here is a decent overview
of Routing Strategies
.
Upvotes: 3