2013-07-31 2 views
11

Как отображать изображение на основе значения в XAML?Отображение изображения на основе значения в XAML

У меня есть гендерное перечисление

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

В моем классе модели у меня есть свойство этого типа перечисления под названием «Пол». Теперь я хочу отобразить изображение, основанное на значении «Пол» через сторону XAML.

+1

Внутри DataTemplate? Затем вы можете использовать триггер. –

ответ

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

Это гораздо более чистое решение, чем обычное «вам нужно создать конвертер bla bla bla», спасибо! – Monsignor

+0

С привязкой, указанной в свойстве «Tag» изображения, все привязки DataTrigger в '' должны ссылаться на «тег» изображения, т. Е. «Binding =» {Binding Path = Tag, RelativeSource = {RelativeSource Self}} "' – zmechanic

Смежные вопросы