Wpf 什么';触发器和数据触发器的区别是什么?

Wpf 什么';触发器和数据触发器的区别是什么?,wpf,triggers,datatrigger,Wpf,Triggers,Datatrigger,他们看起来一样。有显著差异吗?我想我遗漏了一些东西。简短的回答(当我即将入睡时)-触发器可以工作(通常是GUI属性),而数据触发器可以由任何.NET属性(通常是实现的ViewModel中的属性)触发。常规的触发器只响应依赖属性 DataTrigger可以由任何.NET属性触发(通过设置其Binding属性)。但是,它的设置程序仍然只能针对依赖项属性 另一个区别是,DataTrigger可以绑定到另一个控件、静态资源等 <Style TargetType="TextBox"> &l

他们看起来一样。有显著差异吗?我想我遗漏了一些东西。

简短的回答(当我即将入睡时)-触发器可以工作(通常是GUI属性),而数据触发器可以由任何.NET属性(通常是实现的ViewModel中的属性)触发。

常规的
触发器只响应依赖属性


DataTrigger
可以由任何.NET属性触发(通过设置其
Binding
属性)。但是,它的设置程序仍然只能针对依赖项属性

另一个区别是,
DataTrigger
可以绑定到另一个控件、静态资源等

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


使用
触发器时,只能检查设置样式的实例。例如,应用于按钮的
触发器
可以检查已按下的
的值,但如果您希望在
文本框
为空时禁用
按钮
,则无法检查同一表单上
文本框
的值(例如)

如果这是唯一的区别,那么为什么要使用常规触发器?
trigger
在绑定视图中的属性时更方便。这是否回答了您的问题?