我想定义触发器作为资源,稍后在我的控件中使用它们。使用触发器作为资源
像这样:
<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