Einstellung der Label-Text in XAML string-Konstante
Habe ich eine einzige string-Konstante, die ich habe, um die Wiederverwendung in verschiedenen XAML-layouts, so statt Sie zu duplizieren, möchte ich nur binden Sie es auf eine Konstante.
Habe ich eine Klasse, die definiert den string, die in C#:
public static class StringConstants
{
public static string MyString { get { return "SomeConstant"; } }
}
Ich würde gerne in der Lage sein, den Wert durch XAML über etwas wie den folgenden:
<Label Content="{Binding local:StringConstants.MyString}"/>
Ist dieser erreichbar? Ich gesucht habe für die Beispiele, aber ich habe nur gefunden, Proben, beinhalten einige basteln in der code-behind und ich Frage mich, ob es gibt eine einfachere, XAML-nur Lösung, wenn ich weiß, dass ich nur brauchen, um den Wert einmal basierend auf einem string-Wert, der wird sich nie ändern.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bindung an ein statisches Element, so dass Sie verwenden sollten,
x:Static
- Markup-Erweiterung:Laut @H. B. ' s Kommentar es ist nicht notwendig für die Bindung, damit es einfacher zu verwenden:
Content="{x:Static local:StringConstants.MyString}"
Setzen die public static string MyString in Ihrer App.xaml.cs. Dann können Sie auf Sie es wie folgt.
In dem Fall, dass Sie eine Konstante innerhalb einer nicht-statische Klasse, das funktioniert nicht.
Meine Lösung für die Bindung an eine Konstante innerhalb einer view-Modell (MVVM).
Es verwendet eine getter-Eigenschaft mit weniger code für die Verpackung.
.
Den FallbackValue ist für die Designer-Vorschau.