我正在尝试在触发DataTrigger时更改Button的Click属性/事件,但我不确定这是否是执行此操作的最佳方法。事实上,它甚至不会编译:)
我看起来像这样:
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=ObjectTreeView, Path=SelectedItem.Replaceable}" Value="False">
<Setter Property="Content" Value="Add" />
<Setter Property="Button.Click" Value="AddObject_Click" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=ObjectTreeView, Path=SelectedItem.Replaceable}" Value="True">
<Setter Property="Content" Value="Replace" />
<Setter Property="Button.Click" Value="ReplaceObject_Click" />
</DataTrigger>
</Style.Triggers>
</Style>
编译给我一条错误消息,说“找不到样式属性'点击'类型'System.Windows.Controls.Button'”
有什么建议吗?如果不可能,还有哪些替代方案?
谢谢!
编辑:
我以为我找到了使用EventSetter的解决方案,但Triggers中不支持EventSetters。我认为可行的是:
<EventSetter Event="Button.Click" Handlder="AddObject_Click" />
但就像我说的那样,这一点得到了支持。
答案 0 :(得分:2)
只有一次点击事件并且在那种情况下,基于您的DataTrigger的if语句会不会更容易?
答案 1 :(得分:1)
点击不是属性,它是一个事件。按钮具有属性IsPressed,当按下按钮时该属性变为true。你可以尝试使用它。
答案 2 :(得分:0)
请尝试使用按钮的Command属性,而不是使用Click事件。您应该能够根据触发器切换它指向的命令。