datasortinggger sur enum pour changer d’image

J’ai un bouton avec une image d’arrière-plan fixe et j’aimerais afficher une petite image superposée. La superposition d’image à choisir dépend d’une propriété de dépendance ( LapCounterPingStatus ) du modèle de vue correspondant.

C’est ce que j’ai eu jusqu’ici:

  

Parties pertinentes de mon modèle de vue

 public class ConfigurationViewModel { public enum PingStatus { PING_UNKNOWN, PING_SUCCESS, PING_FAILURE }; public PingStatus LapCounterPingStatus { get { return _lapCounterPingStatus; } set { _lapCounterPingStatus = value; RaisePropertyChanged(LapCounterPingStatusPropertyName); } } } 

À l’heure actuelle, aucune image superposée n’est affichée. Qu’est-ce qui pourrait être faux?


METTRE À JOUR

La fenêtre de trace de mon IDE montre System.ArgumentException et System.FormatException . La source du problème pourrait-elle être un type d’énumération PingStatus im le XAML?

Vous avez besoin de 2 choses pour que cela fonctionne:

1 – Ajoutez une référence xmlns dans l’élément racine de votre fichier XAML, dans l’espace de noms où votre Enum est défini:

  

2 – dans la propriété Value du DataTrigger , utilisez le formulaire {x:Static} :

   

Notez que le type Enum doit être précédé du préfixe xmlns que vous avez défini ci-dessus.

Modifier:

Si votre Enum est déclaré dans une classe, vous devez utiliser la syntaxe suivante:

{x:Static namespace:ClassName+EnumName.EnumValue}

par exemple:

{x:Static my:ConfigurationViewModel+PingStatus.PING_UNKNOWN}