Paramètre de Texte de l'Étiquette dans le code XAML de constante de chaîne
J'ai une seule constante de chaîne que j'ai ré-utiliser dans différentes mises en page XAML, donc au lieu de dupliquer, j'aimerais simplement lier à une constante.
J'ai une classe qui définit la chaîne de caractères en C#:
public static class StringConstants
{
public static string MyString { get { return "SomeConstant"; } }
}
Je voudrais être en mesure de définir la valeur par le biais du XAML via quelque chose comme ce qui suit:
<Label Content="{Binding local:StringConstants.MyString}"/>
Est-ce réalisable? J'ai cherché des exemples, mais j'ai seulement trouvé des échantillons qui impliquent un certain bricolage dans le code-behind et je me demandais si il y a de plus simple, XAML seule solution si je sais que j'ai juste besoin de définir la valeur une fois basé sur une chaîne de valeur qui ne changera jamais.
OriginalL'auteur mtlynch | 2011-07-22
Vous devez vous connecter pour publier un commentaire.
Vous lient à un membre statique de sorte que vous devriez utiliser
x:Statique
Extension de Balisage:Selon @H. B. de commentaire il n'est pas nécessaire d'utiliser la Liaison de sorte qu'il est plus simple à utiliser:
Que recommandez-vous à la place?
Simplement laisser:
Content="{x:Static local:StringConstants.MyString}"
Oh, c'est cool. Qui fonctionne et qui est plus simple. Merci!
Cela ne fonctionne pas pour UWP apps, malheureusement. Quelqu'un a une idée de comment faire pour ceux?
OriginalL'auteur Navid Rahmani
Mettre le public static string MyString dans votre Application.xaml.cs. Vous pouvez y faire référence comme suit.
OriginalL'auteur paparazzo
Dans le cas que vous avez une constante à l'intérieur d'un non-statique classe, cela ne fonctionne pas.
Ma solution pour la liaison à une constante à l'intérieur d'un modèle de vue (MVVM).
Il utilise un getter de la propriété avec moins de code pour l'emballage.
.
La FallbackValue est utilisé pour le Concepteur de l'aperçu.
OriginalL'auteur Beauty