WPF绑定屏幕提示与相对源

时间:2010-09-13 20:18:01

标签: wpf binding relativesource

我期待屏幕提示的标题也显示“X”,但它是空的:

<Fluent:Button x:Name="rbNewProject"
        Header="X">

    <Fluent:Button.ToolTip>
        <Fluent:ScreenTip Title="{Binding Header, RelativeSource={RelativeSource FindAncestor, AncestorType=Fluent:Button}}">
        </Fluent:ScreenTip>
    </Fluent:Button.ToolTip>

</Fluent:Button>

我怀疑我的绑定表达是错误的,但我无法弄明白......

1 个答案:

答案 0 :(得分:2)

不幸的是,FindAncestor不适用于ToolTips,因为它们不属于目标元素的VisualTree。您可以做的是将ToolTip的DataContext设置为其PlacementTarget(例如,Fluent:Button),以便工具提示的其他Binding语句与PlacementTarget一起用作绑定源。

在您的情况下,请尝试以下代码:

<Fluent:Button x:Name="rbNewProject"
        Header="X">

    <Fluent:Button.ToolTip>
        <Fluent:ScreenTip DataContext="{Binding PlacementTarget, RelativeSource={RelativeSource Self}}" Title="{Binding Header}">
        </Fluent:ScreenTip>
    </Fluent:Button.ToolTip>

</Fluent:Button>

有关此“技术”的更多信息,请访问:http://karlshifflett.wordpress.com/2007/12/29/wpf-sample-series-data-binding-in-tooltip/