2009-04-28 87 views
0

我尝试了解WPF中属性触发器相对于数据触发器的优点。 看起来,属性触发器只能被一个在依赖项属性中改变的值触发,并且数据触发器既可以通过依赖属性中更改的值触发,也可以通过实现INotifyPropertyChange的.Net对象更改。所以我的问题是,为什么不总是使用数据触发器?WPF中属性触发器优于数据触发器的优点

回答

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> 
+0

所以,唯一的财产触发优点是,它得到由风格项属性的值更改触发的短呢?因为我可以绑定到使用DataTrigger的样式的项目属性... – Andy 2009-04-28 10:57:00