XAML-триггер как StaticResource - PullRequest
       10

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

11 голосов
/ 30 апреля 2010

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

1 голос
/ 12 апреля 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...