如何让工具提示绑定一个组合框的工作?(How to get ToolTip binding to w

2019-06-25 21:15发布

目前,我有一个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 确实包含的值。 我相信这一点,因为当我做以下,我看,结果确认工具提示包含值:

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

已经取代DescriptionToolTip我可以看到工具提示的值出现在屏幕上。 然而

ToolTip="{Binding Path=ToolTip}"

仍然无法正常工作。 如果我尝试显示工具提示如下:

ToolTip="ToolTip" 

它只是显示单词“工具提示”。

我怎样才能获得ToolTip中显示的值?

Answer 1:

ToolTip="{Binding Path=ToolTip}"结合ToolTip当前组合框的属性DataContext (对象,其中包含EnumDataItems属性)。 假设你要设置ToolTipComboBox当前所选项目的ToolTip属性值,这样就可以解决问题:

ToolTip="{Binding Path=SelectedItem.ToolTip, RelativeSource={RelativeSource Self}}"


Answer 2:

如果一个ToolTip ,每ComboBoxItem是你想要的,你可以这样做的:

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


文章来源: How to get ToolTip binding to work with a ComboBox?