如何让ToolTip绑定与ComboBox一起使用?

时间:2012-06-29 09:41:06

标签: c# wpf xaml tooltip

目前我有一个ComboBox定义为:

<ComboBox Name="comboItems" ItemsSource="{Binding Path=EnumDataItems}"
            DisplayMemberPath="Description" 
            ToolTip="{Binding Path=ToolTip}" // never displays the value
            SelectedValuePath="Value" SelectedValue="{Binding Path=Value}" />

除了工具提示外,一切正常。它应该绑定的属性; ToolTip 包含值。我确定这一点,因为当我执行以下操作时,我看到一个结果确认ToolTip包含一个值:

<ComboBox Name="comboItems" ItemsSource="{Binding Path=EnumDataItems}" 
            DisplayMemberPath="ToolTip" // I replaced 'Description' with 'ToolTip'
            ToolTip="{Binding Path=ToolTip}"
            SelectedValuePath="Value" SelectedValue="{Binding Path=Value}"/>

Description替换为ToolTip我可以看到ToolTip的值出现在屏幕上。然而

ToolTip="{Binding Path=ToolTip}"

仍然无效。如果我尝试按如下方式显示工具提示:

ToolTip="ToolTip" 

它只显示“工具提示”一词。

如何让ToolTip显示值?

2 个答案:

答案 0 :(得分:30)

如果您想要的每ToolTip ComboBoxItem,您可以这样做:

<ComboBox.ItemContainerStyle>
    <Style>
        <Setter Property="Control.ToolTip" Value="{Binding ToolTip}" />
    </Style>
</ComboBox.ItemContainerStyle>

答案 1 :(得分:19)

ToolTip="{Binding Path=ToolTip}"绑定到当前组合框ToolTip的{​​{1}}属性(包含DataContext属性的对象)。 假设您要将EnumDataItems ToolTip设置为当前所选项目的ComboBox属性值,这可以解决问题:

ToolTip