我想定義觸發器作爲資源,稍後在我的控件中使用它們。使用觸發器作爲資源
像這樣:
<Window.Resources>
<DataTrigger x:Key="Trigger1" Binding="{Binding ViewModelProperty1}" Value="Val1">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
<DataTrigger x:Key="Trigger2" Binding="{Binding ViewModelProperty2}" Value="Val2">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
...
</Window.Resources>
然而,當我嘗試運行代碼,編譯器抱怨的IsEnabled不是有效的成員。我認爲這是因爲它不知道所討論的控制是否會擁有「IsEnabled」屬性。與樣式一樣,我想我需要以某種方式指定TargetType(在我的情況下,它將是FrameworkElement
)。但是如何?
注:
請不建議使用樣式INSTEAD OF觸發器的資源。由於一個控件只能有一個樣式,但我需要給幾個觸發器給一個控件,所以樣式在這裏沒有選擇:
在我的實際代碼中,我有一個Button,它應該有觸發器1,2和4以及一個TextBox那應該有觸發器1和3以及一個應該有觸發器2,3和4的標籤......我想你明白了。
以及如何你要這些觸發器添加到您的控件? – Evk
我的意思是你無法將它們添加到控制Triggers集合中,只能添加到DataTemplate,ControlTemplate或Style觸發器。 – Evk
@Evk我雖然這樣:'' – Kjara