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中编写一个函数,但是我不想尽可能地将不必要的代码放在那里.
回答你的第一篇文章:
<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)