我试图在触发 DataTrigger 时更改按钮的 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”类型上找到样式属性“Click””
有什么建议吗?如果这不可能,有什么替代方案?
谢谢!
编辑:
我以为我找到了使用 EventSetter 的解决方案,但触发器内部不支持 EventSetter。我认为可行的是:
<EventSetter Event="Button.Click" Handlder="AddObject_Click" />
但正如我所说,这是完全受支持的。
最佳答案
仅拥有一个单击事件并在该事件中使用基于 DataTrigger 的 if 语句不是更容易吗?
关于c# - 根据 DataTrigger 更改按钮的单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/863990/