在不知道祖先类型的情况下绑定到附属物

时间:2012-11-09 23:51:30

标签: .net wpf xaml

我有一个附属属性,如下所示:

<Button Styles:ToolTip.Title="The Title"/>

我设置了一个访问样式,如下所示:

<TextBlock Text="{Binding Path=(Styles:ToolTip.Title), 
   RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Button}}}"/>

这种绑定的问题在于它只能在我的属性位于Button上时才能工作。

我正在制作自定义工具提示功能,因此我希望它可以处理通常显示工具提示的任何控件。

通常我会绑定到TemplatedParent。但那就是ContentPresenter。

如何让源指向其上具有附加属性的对象(并且不在代码中静态引用它)?

Here is my full style in case it is needed.

更新:

这是做了什么的。我将RegisterAttached方法的最后一个参数更改为:

new FrameworkPropertyMetadata(default(string), 
                              FrameworkPropertyMetadataOptions.Inherits)

1 个答案:

答案 0 :(得分:2)

您可以尝试将该属性设为inherited dependency property。然后在父Button上设置值将导致子TextBlock继承值