如何将简单的静态字符串绑定到WPF Label

Mon*_*RPG -1 c# data-binding wpf

我有一个C#.NET 4.5 WPF应用程序,带有一个公共静态类.在该类中,我有一个公共静态字符串.我想要的非常简单,我想将该静态字符串绑定到WPF Label,因此每当更新该字符串时,WPF Label也会更新.

我怎样才能以最简单,最简单的方式实现这一目标

下面的静态类

public static class GlobalStats
{
    private static void updateValues()
    {
        srGlobalStatics="example";   
    }
    public static string srGlobalStatics = "";
}
Run Code Online (Sandbox Code Playgroud)

我希望我的WPF标签绑定到该特定srGlobalStatics字符串.

这是我的XAML代码:

<Label Name="lblGlobalStats" Content="lblGlobalStats" HorizontalAlignment="Left"
       Margin="10,36,0,0" VerticalAlignment="Top"/>
Run Code Online (Sandbox Code Playgroud)

这不可能吗?

我可以在MainWindow.xaml.cs中编写一个函数,但是我不想尽可能地将不必要的代码放在那里.

Kad*_*ekM 5

回答你的第一篇文章:

 <Label Name="lblGlobalStats" 
 Content="{Binding Source={x:Static wpfApplication1:GlobalStats.srGlobalStatics}}" 
 HorizontalAlignment="Left" Margin="10,36,0,0" VerticalAlignment="Top"/>
Run Code Online (Sandbox Code Playgroud)

对于你的第二个问题(在评论中提出),假设你想要它全部是静态的(尽管它是丑陋的):

public static void updateValues()
{
    srGlobalStatics[0] = "changed";
}

public static ObservableCollection<string> srGlobalStatics = 
   new ObservableCollection<string> { "test" };
Run Code Online (Sandbox Code Playgroud)

WPF:

<Label Name="lblGlobalStats" 
    Content="{Binding Path=[0], Source={x:Static 
    wpfApplication1:GlobalStats.srGlobalStatics}}" 
    HorizontalAlignment="Left" Margin="10,36,0,0" VerticalAlignment="Top"/>
Run Code Online (Sandbox Code Playgroud)