我尝试了解WPF中属性触发器对数据触发器的优势。 似乎属性触发器只能由依赖项属性中更改的值触发,并且数据触发器既可以由依赖项属性中更改的值触发,也可以在实现INotifyPropertyChange的.Net对象中更改的值触发。所以我的问题是,为什么不总是使用数据触发器?
答案 0 :(得分:3)
Trigger
查看您正在样式化/模板化的项目中的属性,而DataTrigger
默认查看当前DataContext
。
示例:
<Style TargetType="ListBoxItem">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<!-- applied when mouse is over the ListBoxItem -->
</Trigger>
<DataTrigger Binding="{Binding Name}" Value="Kent">
<!-- applied when the ListBoxItem's data has a Name property set to "Kent" -->
</DataTrigger>
</Style.Triggers>
</Style>