【问题标题】:How to bind a boolean to toggle a Button's Click event如何绑定布尔值以切换按钮的 Click 事件
【发布时间】:2012-02-25 07:32:46
【问题描述】:

我有一个Button...

<Button Click="Button_Click" />

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

如何做到这一点?

【问题讨论】:

    标签: c# wpf xaml data-binding button


    【解决方案1】:

    到目前为止,您尝试了什么?

    我会使用绑定到ButtonIsEnabled 属性。

    <Button Click="Button_Click" IsEnabled="{Binding Path=CanBeClicked}" />
    

    【讨论】:

      【解决方案2】:

      最好的方法是将属性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>
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-08-02
          • 2018-01-17
          • 2015-10-02
          • 1970-01-01
          • 2023-03-20
          • 2012-07-21
          • 1970-01-01
          相关资源
          最近更新 更多