2011-01-05 16 views
11

Tengo una propiedad que se rellena mediante enlace. atributo de color se establece el valor de la propiedad ColorWPF: binding, setter de propiedad condicional

<Rectangle.Fill> 
     <SolidColorBrush Color="{Binding Path=Color}"/> 
</Rectangle.Fill> 

Como puedo refactorizar que a la unión condicional así:

<Rectangle.Fill> 
      <SolidColorBrush Color="{Binding Path=SomeBooleanProperty ? #FF0000 : #00FF00 }"/> 
    </Rectangle.Fill> 
+1

¿Puedes poner el condicional en el captador de propiedades y enlazar a la propiedad normalmente? – vlad

+0

Sí, puedo, pero quiero seguir estilizando en XAML, no en código subyacente –

Respuesta

20

Gracias, @Jackson, código final es la siguiente:

<Style TargetType="Rectangle" x:Key="ColorBySuccess"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=Success}" Value="True"> 
        <Setter Property="Fill" Value="#00FF00"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
... 
<Rectangle Fill="Green" Style="{StaticResource ColorBySuccess}" .../> 
Cuestiones relacionadas