2011-01-05 23 views
11

Ho una proprietà che viene popolata tramite associazione. attributo di colore è impostato il valore della proprietà di coloreWPF: binding, setter proprietà condizionale

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

Come posso refactoring che al condizionale legame così:

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

puoi mettere il condizionale nel getter della proprietà e associarlo normalmente? – vlad

+0

Sì, posso, ma voglio mantenere lo stile in XAML, non nel code-behind –

risposta

20

Grazie, @Jackson, codice finale è la seguente:

<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}" .../>