我有一个工具提示的样式和模板,并希望将工具提示中的一些内容绑定到父级的错误集合中。我可以通过在下面的代码中明确设置AncestorType来实现这一点,但我希望这可以全局应用。我尝试过使用UIElement和FrameworkElement没有运气,但我认为这是因为它没有在树上找到正确的元素。
<ControlTemplate.Triggers>
<DataTrigger
Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TextBox}}, Path=(Validation.HasError)}"
Value="True">
<Setter
Property="Visibility"
TargetName="ErrorBorder"
Value="Visible" />
<Setter
Property="Text"
TargetName="ErrorText"
Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TextBox}}, Path=(Validation.Errors)[0].ErrorContent}" />
</DataTrigger>
</ControlTemplate.Triggers>
答案 0 :(得分:1)
简单一试,
AncestorType=Control
答案 1 :(得分:0)
您可以在RelativeSource中使用AncestorLevel。
答案 2 :(得分:0)
我能够通过使用以下绑定绑定到工具提示的PlacementTarget来实现此功能:
{Binding RelativeSource={RelativeSource Mode=Self}, Path=PlacementTarget.(Validation.HasError)}"
只要工具提示的PlacementTarget是具有错误验证的控件(在我的情况下就是这样),这似乎工作得很好。