9

我的 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>
4

2 回答 2

6

我不确定我是否理解正确,但如果您使用的是 a Style,则不必使用 aDataTriggerRelativeSource={RelativeSource Self}}"访问SelectedValue,您应该能够通过 aTrigger使用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>
于 2013-03-05T23:50:19.363 回答
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}"/>
于 2013-03-06T06:32:17.777 回答