C# 更改按钮';s基于数据触发器的单击事件
我试图在触发DataTrigger时更改按钮的Click属性/事件,但我不确定这是否是最好的方法。事实上,它甚至不会编译:) 我所拥有的是这样的:C# 更改按钮';s基于数据触发器的单击事件,c#,wpf,button,datatrigger,C#,Wpf,Button,Datatrigger,我试图在触发DataTrigger时更改按钮的Click属性/事件,但我不确定这是否是最好的方法。事实上,它甚至不会编译:) 我所拥有的是这样的: <Style TargetType="{x:Type Button}"> <Style.Triggers> <DataTrigger Binding="{Binding ElementName=ObjectTreeView, Path=SelectedItem.Replaceable}" Valu
<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”上找不到样式属性“Click”
有什么建议吗?如果不可能,还有什么替代方案
谢谢
编辑:
我认为我找到了使用EventSetter的解决方案,但是触发器中不支持EventSetter。我认为会起作用的是:
<EventSetter Event="Button.Click" Handlder="AddObject_Click" />
但正如我所说,这是完全受支持的。只需单击一次事件,在该事件中,基于DataTrigger的if语句不是一个属性,而是一个事件,这难道不容易吗。按钮有一个属性IsPressed,当按下按钮时该属性变为true。您可以尝试使用它。尝试使用按钮的Command属性,而不是使用Click事件。您应该能够根据触发器切换它指向的命令。当然。这是我以前拥有的,但如果可能的话,我正在寻找一个基于xaml的解决方案。我想我正在寻找的是一个EventSetter。而且看起来触发器不支持EventSetter。