Setting Label Text in XAML to string constant

21,720

You are binding to a static member so you should use x:Static Markup Extension:

<Label Content="{Binding Source={x:Static local:StringConstants.MyString}}"/>

According to @H.B.'s comment it's not necessary to use Binding so it's simpler to use:

<Label Content="{x:Static local:StringConstants.MyString}"/>
Share:
21,720
mtlynch
Author by

mtlynch

Updated on July 08, 2020

Comments

  • mtlynch
    mtlynch almost 4 years

    I have a single string constant that I have to re-use in several different XAML layouts, so instead of duplicating it, I'd like to just bind it to a constant.

    I have a class which defines the string in C#:

    public static class StringConstants
    {
         public static string MyString { get { return "SomeConstant"; } }
    }
    

    I'd like to be able to set the value through XAML via something like the following:

    <Label Content="{Binding local:StringConstants.MyString}"/>
    

    Is this achievable? I've searched for examples, but I've only found samples that involve some tinkering in the code-behind and I'm wondering if there's a simpler, XAML-only solution if I know that I just need to set the value once based on a string value that will never change.

  • mtlynch
    mtlynch almost 13 years
    @H.B. What do you recommend instead?
  • H.B.
    H.B. almost 13 years
    @nonsensical101: Just leaving it out: Content="{x:Static local:StringConstants.MyString}"
  • James Ko
    James Ko over 7 years
    This doesn't work for UWP apps, unfortunately. Anyone have an idea how to do it for those?
  • Gusdor
    Gusdor over 7 years
    @H.B. Some reasons you may use a binding - formatted strings. multibindings, value conversion