DataTrigger-Verwendung

Hier ist Pseudocode für das, was ich in xaml implementieren möchte

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

und unten ist ein Implementierungsversuch mit mindestens den folgenden Problemen:

Woher weiß es, dass der AvatarPath null ist und dass uns das Geschlecht am Herzen liegt?Gibt es eine Möglichkeit, ELSE auszuführen, sodass ich die Gender.Male-Ressource nur einmal anstelle von jeweils einmal für angeben kann?

Wie kann ich das richtig umsetzen?

Prost,
Berryl

xaml versuch 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>
aktualisieren

Wie Trimeyko darauf hinweist, ist dieskönnte Dies kann entweder mit einem Multikonverter oder innerhalb eines Ansichtsmodells erfolgen.

Zu meiner Antwort zurück: "Ich habe den Multikonverter-Ansatz zuerst mit bescheidenem Erfolg ausprobiert und beinahe veröffentlicht, um die Bereinigung zu erleichtern. Dann habe ich entschieden, dass Konverter am besten für die eigentliche Konvertierung von Typen geeignet sind. Einigermaßen ist der Ansichtsmodell-Ansatz wahrscheinlich am einfachsten Aber dies scheint eher die Aufgabe der Ansicht zu sein, und ich würde gerne sehen, ob ich es zuerst schaffen kann, es als solches zum Laufen zu bringen. "

Ich habe versucht, [dies mit einem mutliConveter-Posting hier zu lösen] (MultiConverter Nutzung)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage