2011-01-05 7 views
11

Ich habe eine Eigenschaft, die über Bindung aufgefüllt wird. Farbe Attribut gesetzt wird, um den Wert der Eigenschaft ColorWPF: bindende, bedingte Eigenschaft Setter

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

Wie kann ich Refactoring, dass die bedingte wie die Bindung:

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

Können Sie die Bedingung in die Eigenschaft Getter setzen und normal an die Eigenschaft binden? – vlad

+0

Ja, ich kann, aber ich möchte weiterhin in XAML, nicht in Code-Behind –

Antwort

20

Danke, @Jackson, endgültige Code ist folgende:

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