XAML触发器作为StaticResource

时间:2010-04-30 09:30:14

标签: wpf xaml triggers

为什么我不能创建触发器并将其用作XAML中的静态资源?

<Window.Resources>
    <Trigger x:Key="ValidationTrigger" x:Shared="False" Property="Validation.HasError" Value="true">
        <Setter Property="FrameworkElement.ToolTip"
                Value="{Binding RelativeSource={x:Static RelativeSource.Self},
                Path=(Validation.Errors)/ErrorContent}"/>
    </Trigger>

    <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
        <Style.Triggers>
            <StaticResource ResourceKey="ValidationTrigger"/>
        </Style.Triggers>
    </Style>
</Window.Resources>

我在运行时收到错误消息 “价值不能无效 参数名称:triggerBase标记文件中对象'System.Windows.Markup.StaticResourceHolder'的错误“

1 个答案:

答案 0 :(得分:1)

我想这是因为首先加载了资源。

因此,在这种情况下,WPF会尝试在可能与之关联的任何控件之前加载触发器。那么此时无法评估触发值。

但需要确认:)