将XAML中的标签文本设置为字符串常量

mtl*_*nch 13 c# data-binding wpf xaml static-members

我有一个单独的字符串常量,我必须在几个不同的XAML布局中重复使用,所以我不想复制它,而是将它绑定到一个常量.

我有一个在C#中定义字符串的类:

public static class StringConstants
{
     public static string MyString { get { return "SomeConstant"; } }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够通过以下方式通过XAML设置值:

<Label Content="{Binding local:StringConstants.MyString}"/>
Run Code Online (Sandbox Code Playgroud)

这可以实现吗?我已经搜索了一些示例,但我只发现了代码隐藏中涉及一些修改的示例,我想知道是否有一个更简单的XAML解决方案,如果我知道我只需要设置一次基于值在一个永远不会改变的字符串值上.

Nav*_*ani 27

您绑定到静态成员,因此您应该使用x:Static标记扩展:

<Label Content="{Binding Source={x:Static local:StringConstants.MyString}}"/>
Run Code Online (Sandbox Code Playgroud)

根据@ HB的评论,没有必要使用Binding,因此使用起来更简单:

<Label Content="{x:Static local:StringConstants.MyString}"/>
Run Code Online (Sandbox Code Playgroud)

  • @ nonsensical101:把它留下来:`Content ="{x:Static local:StringConstants.MyString}"` (3认同)