2013-07-31 12 views
11

Come posso visualizzare un'immagine basata su un valore in XAML?Visualizzazione di un'immagine basata sul valore in XAML

devo genere enumerazione

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

Alla mia classe del modello ho una proprietà di quel tipo di enumerazione chiamato "Gender". Ora voglio visualizzare un'immagine basata sul valore di "Gender" dal lato XAML.

+1

All'interno di un DataTemplate? Quindi puoi usare un grilletto. –

risposta

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

Questa è una soluzione molto più pulita rispetto al solito "devi creare un convertitore bla bla bla", grazie! – Monsignor

+0

Con il bind specificato nella proprietà 'Tag' dell'immagine tutti i collegamenti DataTrigger in' 'devono fare riferimento a' Tag' dell'immagine, ad esempio 'Binding =" {Binding Path = Tag, RelativeSource = {RelativeSource Self}} "' – zmechanic

Problemi correlati