2009-04-28 66 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