Liaison de type enum à textbox
- Je lier zone de texte.valeur de texte de type enum.
Mon enum ressemble à ça
public enum Type
{
Active,
Selected,
ActiveAndSelected
}
Ce que je wan pas-à-vis est de montrer sur la zone de texte "Mode Actif" au lieu de "Actif" et ainsi de suite. Est-il possible de faire cela? Ce serait génial si je pouvais réaliser que dans le code XAML - parce que tous les liens que j'ai dans le fichier de style de style.xaml
J'ai essayé d'utiliser la Description des attributs, mais il semble qu'il ne suffit pas
OriginalL'auteur george dobravski | 2010-09-12
Vous devez vous connecter pour publier un commentaire.
À mon humble avis, à l'aide d'un convertisseur est une meilleure approche.
La première chose que vous devez faire est de mettre en œuvre un attribut simple pour ajouter des métadonnées à votre enum éléments. Voici un exemple de base (sans l'internationalisation pour des raisons de simplicité):
À côté de cela, vous pouvez écrire une classe utilitaire capable de convertir à partir d'un enum élément correspondant à son StringValue représentation à l'aide de la réflexion. Recherche Google pour "la Chaîne des Énumérations en C# - CodeProject" et vous trouverez CodeProject l'article à ce sujet (désolé, ma réputation ne me permet pas d'ajouter le lien..)
Maintenant, vous pouvez mettre en œuvre un convertisseur qui délègue simplement la conversion de la classe utilitaire:
Enfin, vous pouvez utiliser le convertisseur dans votre code XAML:
Vérifiez les points suivants page; il donne un exemple qui soutient l'internationalisation, mais, fondamentalement, le principe est le même..
OriginalL'auteur dSebastien
Vous n'avez pas besoin d'un convertisseur pour ce cas simple. Utilisation Stringformat en place. Le premier '{}' sont une séquence d'échappement est à dire l'analyseur que tu ne veux pas les utiliser pour une autre balise imbriquée. Si vous ajouter du texte avant le texte (indiqué par '{0}'), vous pouvez les supprimer.
OriginalL'auteur Dabblernl
Vous pouvez utiliser un Convertisseur pour ce faire. Lier à l'enum normalement, mais ajouter un Convertisseur de propriété de la liaison. Le convertisseur est une classe implémentant IValueConverter, qui sera appelé par WPF. De là, vous pouvez ajouter un suffixe comme "Mode" (ou faire ce que vous voulez).
Oui, j'ai pu (voir blogs.msdn.com/b/bencon/archive/2006/05/10/594886.aspx), mais @Dabblernl la réponse est mieux.
OriginalL'auteur Timores