如何让按钮对WPF中的Bindings属性更改做出反应

本文关键字:属性 Bindings 按钮 中的 WPF | 更新日期: 2023-09-27 18:16:31

我有一个控件,有一个DataContext正在加载,并基于它我创建了一堆Button s。我想让Button对绑定对象的变化做出反应

<Button ToolTip="{Binding Tip}" 
        ib:ButtonProperties.Image="{Binding EnabledSource}" 
        ib:ButtonDProperties.Image="{Binding DisabledSource}" 
        Content="{Binding Text}" 
        IsEnabled="{Binding DefaultEnabled}"
        Tag="{Binding .}"
        Click="ToolBarButtonButton_Click"
        Style="{StaticResource ImageButton}">
</Button>

为简化起见,假设我绑定了一个自定义对象的集合,这些对象有一个bool类型的名为"IsPerfect"的属性。指定给按钮的Object也被设置为标签。

我想有按钮反应属性"IsPerfect"属于数据绑定对象,然后执行一个事件处理程序或启用/禁用按钮。

如何让按钮对WPF中的Bindings属性更改做出反应

<Button IsEnabled="{Binding SomeBoolValue}"/>

您可以使用样式来实现您的目标。

<Button>
  <Button.Style>
   <Style>
      <DataTrigger Binding="{Binding IsPerfect}" Value="True">
         <Setter Property="Button.IsEnabled" Value="True"></Setter>
      </DataTrigger>
   </Style>
  <Button.Style>
</Button>