2013-07-31 26 views
11

Jak wyświetlić obraz na podstawie wartości w XAML?Wyświetlanie obrazu na podstawie wartości w XAML

mam wyliczenie płci

[DataContract(Name = "Gender")] 
public enum GenderEnum 
{ 
    [EnumMember] NotSpecified, 
    [EnumMember] Male, 
    [EnumMember] Female, 
} 

W moim modelu klasy mam właściwość tego typu wyliczenia o nazwie „Gender”. Teraz chcę wyświetlić obraz w oparciu o wartość "Płeć" po stronie XAML.

+1

Wewnątrz DataTemplate? Następnie możesz użyć spustu. –

Odpowiedz

19

XAML:

<Image Tag="{Binding Gender}" Width="48" Height="48"> 
     <Image.Style> 
     <Style TargetType="Image"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Gender}" Value="Male"> 
        <Setter Property="Source" Value="/Resources/Client_Male.png"/> 
       </DataTrigger > 
       <DataTrigger Binding="{Binding Gender}" Value="Female"> 
        <Setter Property="Source" Value="/Resources/Client_Female.png"/> 
       </DataTrigger > 
      </Style.Triggers> 
     </Style> 
     </Image.Style> 
    </Image> 
+0

To znacznie czystsze rozwiązanie niż zwykle "musisz stworzyć konwerter bla bla bla", dzięki! – Monsignor

+0

Z powiązaniem określonym we właściwości 'Tag' obrazu wszystkie powiązania DataTrigger w' 'powinny odnosić się do' Tag' obrazu, tzn. 'Binding =" {Binding Path = Tag, RelativeSource = {RelativeSource Self}} " – zmechanic

Powiązane problemy