Uso de DataTrigger

Aquí está el pseudo código para lo que quiero implementar en 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

A continuación se muestra un intento de implementación con al menos los siguientes problemas:

¿Cómo sabe que el AvatarPath fue nulo y que nos importa el género?¿hay una manera de hacer ELSE, por lo que puedo especificar el recurso Gender.Male solo una vez en lugar de una vez para cada uno?

¿Cómo puedo implementar esto correctamente?

Aclamaciones,
Berryl

xaml intento 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>
actualizar

Como señala trimeyko, estepodría Se puede hacer con un multiconvertidor o dentro de un modelo de vista.

Según mi respuesta, "al principio, probé el enfoque del convertidor múltiple, con un éxito modesto, y casi lo publiqué para ayudar a limpiarlo. Luego, decidí que es mejor dejar a los convertidores para convertir los tipos en realidad. pero esto parece ser más el trabajo de la vista, y me gustaría ver si puedo hacer que funcione como tal primero ".

Hice mi intento de [resolver esto con una publicación mutliConveter aquí] (Uso de múltiples conversores)

Respuestas a la pregunta(2)

Su respuesta a la pregunta