在应用程序级样式资源中指定绑定?

时间:2012-04-10 15:02:28

标签: wpf

我对WPF很新,并创建了一种改变按钮控件外观的样式。该样式包含一个数据触发器,用于根据数据上下文中的布尔属性更改按钮背景(以及其他内容),例如: -

<Style x:Key="IndicatorButton" TargetType="Button">
   <DataTrigger Binding="{Binding Path=ValveIsOpen}" Value="True">
      <Setter Property="Background" Value="#00FF00"/>
      ..etc..

目前,样式仅由单个按钮使用,因此数据触发器绑定使用名为“ValveIsOpen”的属性进行硬编码。 我现在想在整个应用程序中重复使用这种样式,不同的按钮被绑定到不同的属性。如何在应用样式的每个按钮上更改数据触发器绑定?

非常感谢

1 个答案:

答案 0 :(得分:1)

您需要定义基本样式和派生样式,例如

<Style x:Key="IndicatorButton" TargetType="Button">
   <Setter Property="Foreground" .../>
   ...

<Style x:Key="ValveIndicatorButton" TargetType="Button" BasedOn={StaticResource IndicatorButton}>
   <DataTrigger Binding="{Binding Path=ValveIsOpen}" Value="True">
      <Setter Property="Background" Value="#00FF00"/>
      ..etc..