我的WPF应用程序中有ComboBox
。使用下面的代码,我可以将ToolTip
设置为选定值:
ToolTip="{Binding Path=SelectedValue, RelativeSource={RelativeSource Self}}"
但是,如果我需要根据ToolTip
选项为ComboBox
设置单独的值,则以下代码无效:
<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>
答案 0 :(得分:6)
我不确定我是否理解正确,但如果您使用Style
,则不必使用DataTrigger
或RelativeSource={RelativeSource Self}}"
来访问SelectedValue
,您应该可以使用Trigger
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>
答案 1 :(得分:2)
将工具提示绑定到所选项目的显示属性,在这种情况下,我有属性名称显示,如果你有声明性的ComboBox项目,那么
ToolTip="{Binding Path=SelectedItem.Content,ElementName=cmbbox_years}"
否则代码下面的自定义对象将起作用
<ComboBox
Name="cmbbox_years"
DisplayMemberPath="display"
SelectedValuePath="value"
ItemsSource="{Binding Years}"
SelectedItem="{Binding YearSelectedItem}"
ToolTip="{Binding Path=SelectedItem.display,ElementName=cmbbox_years}"/>