[英]How to bind simple static string to WPF Label
我有一个带有公共静态类的C#.NET 4.5 WPF应用程序。 在该类中,我有一个公共静态字符串。 我想要的非常简单,我想将该静态字符串绑定到WPF Label
,因此无论何时更新该字符串,WPF Label也会得到更新。
如何以最简单,最简单的方法实现这一目标
下面的静态类
public static class GlobalStats
{
private static void updateValues()
{
srGlobalStatics="example";
}
public static string srGlobalStatics = "";
}
我希望将WPF标签绑定到特定的srGlobalStatics
字符串。
这是我的XAML代码:
<Label Name="lblGlobalStats" Content="lblGlobalStats" HorizontalAlignment="Left"
Margin="10,36,0,0" VerticalAlignment="Top"/>
这不可能吗?
我可以在MainWindow.xaml.cs中编写一个函数,但是我不想在其中尽可能多地放入不必要的代码。
回答您的第一篇文章:
<Label Name="lblGlobalStats"
Content="{Binding Source={x:Static wpfApplication1:GlobalStats.srGlobalStatics}}"
HorizontalAlignment="Left" Margin="10,36,0,0" VerticalAlignment="Top"/>
对于您的第二个问题(在注释中提出),假设您希望所有这些问题都是静态的(尽管如此丑陋):
public static void updateValues()
{
srGlobalStatics[0] = "changed";
}
public static ObservableCollection<string> srGlobalStatics =
new ObservableCollection<string> { "test" };
WPF:
<Label Name="lblGlobalStats"
Content="{Binding Path=[0], Source={x:Static
wpfApplication1:GlobalStats.srGlobalStatics}}"
HorizontalAlignment="Left" Margin="10,36,0,0" VerticalAlignment="Top"/>
最简单(不一定最好)的方法是将GlobalStats
类声明为非静态类,将其设置为DataContext
,最后从XAML源绑定到您的字符串:
public class GlobalStats
{
private string _myLabel;
public string MyLabel {
get { return _myLabel; }
set { _myLabel = value; }
}
}
然后,在您的代码隐藏中,执行以下操作:
private GlobalStats_myDataModel = new GlobalStats();
// ...
public MainWindow() {
// ...
DataContext = _myDataModel;
最后,您的XAML:
<Label Name="lblGlobalStats" Content="{Binding Path=MyLabel" HorizontalAlignment="Left"
Margin="10,36,0,0" VerticalAlignment="Top"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.