目前我有一个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
显示值?
答案 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