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

Какая разница между триггером и DataTrigger?

Они кажутся одинаковыми. Есть ли существенная разница? Я думаю, что чего-то не хватает.

4b9b3361

Ответ 1

Регулярный триггер реагирует только на свойства зависимостей.

Триггер данных может запускаться любым свойством .NET(путем установки его свойства Binding). Однако его сеттеры могут по-прежнему ориентироваться только на свойства зависимостей.

Ответ 2

Другое отличие состоит в том, что DataTrigger может быть привязан к другому элементу управления, StaticResource и т.д. и т.д.

<Style TargetType="TextBox">
  <Style.Triggers>
    <DataTrigger 
      Binding="{Binding SomeProperty, 
                        ElementName=someOtherControl" 
      Value="Derp">
      <!-- etc -->

Вы можете проверить только экземпляр, на котором установлен стиль при использовании Trigger. Например, Trigger, примененный к Button, может проверять значение IsPressed, но он не сможет проверить значение (например) Text значения TextBox в той же форме, если вы хотите отключите Button, если TextBox пуст.