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

Relativity picture Relativity · Mar 6, 2013 · Viewed 10.4k times · Source

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>

Answer

sa_ddam213 picture sa_ddam213 · Mar 6, 2013

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>