如何绑定布尔值以切换Button的Click事件

时间:2012-02-02 16:20:15

标签: c# wpf xaml data-binding button

我有Button ...

<Button Click="Button_Click" />

我想以某种方式绑定CanClick布尔值。当CanClickfalse时,Click事件不应触发......

如何做到这一点?

3 个答案:

答案 0 :(得分:5)

为此,您只需使用command(通过将Button.Command绑定到Command),如果CanExecutefalse,则会停用该按钮(您可能需要使用CanExecuteChanged事件让按钮知道对CanExecute的更改。

答案 1 :(得分:3)

到目前为止你尝试了什么?

我使用绑定到Button的{​​{1}}属性。

IsEnabled

答案 2 :(得分:0)

最好的方法是将属性CanClick绑定到Button控件的IsEnabled属性。这样,当CanClickfalse时,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>