Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
516 views
in Technique[技术] by (71.8m points)

c# - Setting Label Text in XAML to string constant

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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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}"/>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...