Search code examples
wpfcomboboxtriggerstooltipselectedvalue

How to set the ToolTip of WPF ComboBox based on selected value?


I have a ComboBox in my WPF application. Using below code I can set the ToolTip as selected value:

ToolTip="{Binding Path=SelectedValue, RelativeSource={RelativeSource Self}}" 

But if I need to set a separate value for ToolTip based on ComboBox selection, the following code is not working:

<controls:ComboBoxEx.Style>
    <Style TargetType="ComboBox" BasedOn="{StaticResource basicStyle}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Path=SelectedValue, RelativeSource={RelativeSource Self}}" Value="DAW">
                <Setter Property="ToolTip" Value="abc"/>
            </DataTrigger>

            <DataTrigger Binding="{Binding Path=SelectedValue, RelativeSource={RelativeSource Self}}" Value="generic">
                <Setter Property="ToolTip" Value="def"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</controls:ComboBoxEx.Style>

Solution

  • I'm not sure if I understand correctly, but if you are using a Style you should not have to use a DataTrigger or RelativeSource={RelativeSource Self}}" to access SelectedValue, you should be able to access via a Trigger using the Property

    <Style TargetType="ComboBox">
        <Style.Triggers>
            <Trigger Property="SelectedValue"  Value="DAW">
                <Setter Property="ToolTip" Value="abc"/>
            </Trigger>
            <Trigger Property="SelectedValue" Value="generic">
                <Setter Property="ToolTip" Value="def"/>
            </Trigger>
        </Style.Triggers>
    </Style>