It is not clear for me what you are trying to achieve.
But if you want dropdown not to be shown when
IsEditable
is set to True and appear when
IsEditable
is False, then you can check this code (add to
ControlTemplate.Triggers
):
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsEditable" Value="True"></Condition>
<Condition Property="IsDropDownOpen" Value="True"></Condition>
</MultiTrigger.Conditions>
<Setter TargetName="Popup" Property="IsOpen" Value="False"></Setter>
</MultiTrigger>
<Trigger Property="ComboBox.IsEditable" Value="True">
<Setter TargetName="ToggleButton" Property="IsEnabled" Value="False" />
</Trigger>
Drop down can be shown if user clicks toggle button or presses Alt + UpArrow/DownArrow. So here we are disabling/enabling toggle button and making popup show logic depend on
IsEditable
.