Подтвердить что ты не робот

XAML триггер как StaticResource

Почему я не могу создать триггер и использовать его как статический ресурс в 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>

Я получаю errormessage во время выполнения
"Значение не может быть нулевым.
Имя параметра: triggerBase Ошибка в объекте "System.Windows.Markup.StaticResourceHolder" в файле разметки "

4b9b3361

Ответ 1

Я предполагаю, что это потому, что сначала загружаются ресурсы.

Итак, в этом случае WPF попытается загрузить ваш триггер перед любым элементом управления, с которым он может быть связан. Тогда значение триггера не может быть оценено в это время.

Но это нужно подтвердить:)