Uso de DataTrigger

Aqui está o pseudo código para o que eu quero implementar em xaml

IF vm.AvatarFilePath IS NOT NULL THEN
    Image.Source = {Binding AvatarPath}
ELSE
    If vm.Gender == {x:Static vm:Gender.Female} THEN
        Image.Source = {StaticResource Img_Female}
    ELSE
        Image.Source = {StaticResource Img_Male}
    ENDIF
ENDIF

e abaixo é uma tentativa de implementação com pelo menos os seguintes problemas:

como ele sabe que o AvatarPath era nulo e que nos importamos com o Gender?existe uma maneira de fazer o ELSE, então eu posso especificar o recurso Gender.Male apenas uma vez, em vez de uma vez para cada

Como posso implementar isso corretamente?

Felicidades,
Berryl

tentativa xaml 1
<DataTemplate x:Key="AvatarPathTemplate">
    <Image x:Name="avatarImage" Source="{Binding AvatarPath}"/>
    <DataTemplate.Triggers>
        <DataTrigger Binding="{Binding Gender}" Value="{x:Static vm:Gender.Female}">
            <Setter Property="Sourrce" Value="{resx:Resx Img_Female}"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding Gender}" Value="{x:Static vm:Gender.Male}">
            <Setter Property="Sourrce" Value="{resx:Resx Img_Male}"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding Gender}" Value="{x:Static vm:Gender.Unknown}">
            <Setter Property="Sourrce" Value="{resx:Resx Img_Male}"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding Gender}" Value="{x:Static vm:Gender.Unspecified}">
            <Setter Property="Sourrce" Value="{resx:Resx Img_Male}"/>
        </DataTrigger>
    </DataTemplate.Triggers>
</DataTemplate>
atualizar

Como trimeyko aponta, estepoderia ser feito com um multiconverter ou dentro de um modelo de visão.

De acordo com minha resposta: "Eu na verdade tentei a abordagem multiconverter no início, com um sucesso modesto, e quase postei isso para ajudar a limpá-la. Então decidi que é melhor converter os conversores em tipos. Concordou que a abordagem do modelo de visualização é provavelmente mais fácil mas isso parece ser mais o trabalho da visão, e eu gostaria de ver se posso fazê-lo funcionar como tal primeiro. "

Eu fiz minha tentativa de [resolver isso com uma postagem mutliConveter aqui] (Uso de MultiConverter)

questionAnswers(2)

yourAnswerToTheQuestion