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

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

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

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

我希望能够通过XAML设置值,如下所示:

  

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

您绑定到静态成员,因此您应该使用x:Static Markup Extension :

  

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

  

将公共静态字符串MyString放在App.xaml.cs中。 然后您可以按如下方式引用它。

  Content="{Binding Source={x:Static Application.Current}, Path=MyString}" 

如果在非静态类中有常量,则不起作用。

我在视图模型 (MVVM)中绑定到常量的解决方案。 它使用getter属性,包含更少的代码。

 // view model public const string MyString = "abc"; public string MyStringConst => MyString; 

   

FallbackValue用于Designer预览。