【发布时间】:2012-02-25 07:32:46
【问题描述】:
我有一个Button...
<Button Click="Button_Click" />
我想以某种方式将CanClick 布尔值绑定到此。当CanClick 为false 时,Click 事件不应触发...
如何做到这一点?
【问题讨论】:
标签: c# wpf xaml data-binding button
我有一个Button...
<Button Click="Button_Click" />
我想以某种方式将CanClick 布尔值绑定到此。当CanClick 为false 时,Click 事件不应触发...
如何做到这一点?
【问题讨论】:
标签: c# wpf xaml data-binding button
到目前为止,您尝试了什么?
我会使用绑定到Button 的IsEnabled 属性。
<Button Click="Button_Click" IsEnabled="{Binding Path=CanBeClicked}" />
【讨论】:
最好的方法是将属性CanClick 绑定到Button 控件的IsEnabled 属性。这样,当CanClick 是false 时,IsEnabled 也将是false。禁用的按钮不会触发 Click 事件。
// ... UserControl code-behind ...
private bool mCanClick = false;
public bool CanClick
{
get { return mCanClick; }
}
// ... UserControl XAML ...
<UserControl ... DataContext="{Binding RelativeSource={RelativeSource Self}}">
...
<Button CanClick="{Binding CanClick}" Click="Button_Click" />
...
</UserControl>
【讨论】:
为此,您可以只使用command(通过将Button.Command 绑定到Command),如果CanExecute 是false,它将禁用按钮(您可能需要使用CanExecuteChanged事件以使按钮知道对CanExecute 的更改)。
【讨论】: