How to set the ToolTip of WPF ComboBox based on selected value?
10,636
Solution 1
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>
Solution 2
Bind the tooltip to the display property of the selected item in this case i have property name display, if you have declarative ComboBox items then that would be
ToolTip="{Binding Path=SelectedItem.Content,ElementName=cmbbox_years}"
Else for custom object below code will work
<ComboBox
Name="cmbbox_years"
DisplayMemberPath="display"
SelectedValuePath="value"
ItemsSource="{Binding Years}"
SelectedItem="{Binding YearSelectedItem}"
ToolTip="{Binding Path=SelectedItem.display,ElementName=cmbbox_years}"/>
Author by
Relativity
A guy with average IQ - still try to explore microsoft .net day by day :)
Updated on July 26, 2022Comments
-
Relativity almost 2 years
I have a
ComboBox
in my WPF application. Using below code I can set theToolTip
as selected value:ToolTip="{Binding Path=SelectedValue, RelativeSource={RelativeSource Self}}"
But if I need to set a separate value for
ToolTip
based onComboBox
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>
-
Relativity about 11 yearsI tried this...but not working... If I put the following setter as default <Setter Property="ToolTip" Value="{Binding Path=SelectedValue, RelativeSource={RelativeSource Self}}"/>..it guives me the correct values DAW and generic when ever i select them...but inside the <trigger> it is not working.
-
sa_ddam213 about 11 yearsDo you have
SelectedvaluePath
set on yourComboBox
-
sa_ddam213 about 11 yearsWhat data type is in the combobox, can you post your ComboBox xaml, and a example of your collection.
-
Relativity about 11 yearsThanks for your help...I have figured it out ...instead of using data triggger with selected value..i used data trigger with original model object...now it is working fine. Thanks
-
wonea about 6 yearsThis will work for a single pass, but it won't update the ToolTip with subsequent viewmodel changes. See stackoverflow.com/a/7313801/271200