1

我有一个工具提示的样式和模板,并且想将工具提示中的一些内容绑定到父级的错误集合。我可以通过像下面的代码中那样显式设置 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>
4

3 回答 3

1

简单试试,

 AncestorType=Control
于 2013-10-17T17:10:38.877 回答
0

我可以通过使用以下绑定绑定到工具提示的 PlacementTarget 来实现这一点:

{Binding RelativeSource={RelativeSource Mode=Self}, Path=PlacementTarget.(Validation.HasError)}"

只要工具提示的 PlacementTarget 是具有错误验证的控件,这似乎运行良好,在我的情况下就是这样。

于 2013-10-17T17:27:15.237 回答
0

您可以在 RelativeSource 中使用 AncestorLevel。

于 2013-10-17T11:47:57.260 回答