Sea*_*n U 45
常规触发器仅响应依赖项属性.
任何.NET属性都可以触发数据触发器(通过设置其Binding属性).但是,它的setter仍然只能定位依赖项属性.
小智 27
另一个区别是a DataTrigger可以绑定到另一个控件,StaticResource等等.
<Style TargetType="TextBox">
<Style.Triggers>
<DataTrigger
Binding="{Binding SomeProperty,
ElementName=someOtherControl"
Value="Derp">
<!-- etc -->
Run Code Online (Sandbox Code Playgroud)
您只能在使用时检查设置样式的实例Trigger.例如,Trigger应用于Button可以检查其值IsPressed,但如果您希望禁用if 为空,则无法检查同一表单上的(例如)Text值. TextBoxButtonTextBox
Ric*_*dOD 17
简短的回答(因为我即将入睡) - 触发器可以处理依赖项属性(通常是GUI属性),而数据触发器可以由任何.NET属性(通常是实现INotifyPropertyChanged的ViewModel中的属性)触发.