在WPF中获取ComboBox显示的文本

时间:2012-02-15 13:52:40

标签: wpf combobox tooltip

我正在尝试将一个工具提示添加到组合框的样式中(以便它适用于整个应用程序中的所有组合)。我想显示当前显示在组合框中的项目。

在某些情况下,组合框绑定到复杂实体(类),并且该类的属性被设置为显示成员,例如:

<ComboBox ItemsSource="{Binding Path=SomeDataSource}"
          DisplayMemberPath="PropertyName" />

同样在某些情况下,我使用字符串列表绑定组合框,因此,我没有设置DisplayMemberPath。

有没有办法获取组合框的当前显示值?

编辑:下面提出的解决方案运行得很好,虽然我遇到了带有ItemTemplate集的组合框的问题(这些项模板中有一个带有多重绑定的TextBlock)。

具有ItemTemplate的组合框没有DisplayMemberPath,因此组合框的“Text”属性返回SelectedValue。

1 个答案:

答案 0 :(得分:1)

试试这个:

<Style TargetType="{x:Type ComboBox}">
    <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Text}"/>
</Style>

当Text属性为空时,您可能需要添加转换器以显示有用的工具提示。

要将样式应用于所有组合框,请将其放入App.xaml中。