We need to do something expensive in SelectionChanged (fill a bunch of other combo boxes based on the selection(s) in the CheckComboBox). We previously had a standard ComboBox, so only got 1 SelectionChanged event. Now with the CheckComboBox, we get SelectionChanged on every click on an item in the control, so we can end up doing our expensive (and mostly wasted) operations 5 or 10 times. We need a way to determine when the user is done selecting and the combo has closed, but I can’t find anything like DropDownClosed on the CCB.
Is there some way to get this or an equivalent event from the CCB? If not, can you suggest an alternative strategy?
You are right, there is no event for this. I have created a feature request for that and an event will be included in the next release: v3.4. Until then, you could use your own CheckComboBox and react on a OnIsDropDownOpenChanged():
public class MyCheckComboBox : CheckComboBox
protected override void OnIsDropDownOpenChanged( bool oldValue, bool newValue )
base.OnIsDropDownOpenChanged( oldValue, newValue );
if( newValue )
// popup has just opened
// popup has just closed
This is to inform you that the following issue was fixed in the latest version (Toolkit for WPF v3.4):
“In CheckComboBox, 2 new events will now be raised (Opened/Closed) when the popup is opened/closed.”