. NET 4.5 XAML绑定到静态属性的更新,工作,但有没有更好的方法
本文关键字:更新 工作 有没有 方法 更好 属性 XAML 绑定 静态 NET | 更新日期: 2023-09-27 18:10:06
很抱歉,如果它是重复的,但我找不到类似的问题。
从stackoverflow其他问题(这个网站是一流的)我发现如何绑定XAML项目与事件更新静态类。它是这样工作的:
XAML: <Label x:Name="label_cc_CPUPOWER" Content="{Binding Path=(database:Database.CPU_CPUPOWER)}"...
代码: public static class Database
{
#region Event firing
public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;
private static void NotifyStaticPropertyChanged(string propertyName)
{
if (StaticPropertyChanged != null)
StaticPropertyChanged(null, new PropertyChangedEventArgs(propertyName));
}
#endregion
//CPU
private static string _CPU_CPUCLOCK;
public static string CPU_CPUCLOCK
{
get { return _CPU_CPUCLOCK; }
set
{
if (value != _CPU_CPUCLOCK)
{
_CPU_CPUCLOCK = value;
NotifyStaticPropertyChanged("CPU_CPUCLOCK");
}
}
}
private static string _CPU_CPUPOWER;
public static string CPU_CPUPOWER
{
get { return _CPU_CPUPOWER; }
set
{
if (value != _CPU_CPUPOWER)
{
_CPU_CPUPOWER = value;
NotifyStaticPropertyChanged("CPU_CPUPOWER");
}
}
}
它是有效的,我真的很感激你,我不需要自己弄清楚这一切,但我有大约25-50个值来存储。我想知道是否有一种方法可以自动执行,而不是在括号中更改名称的复制/粘贴?
我还考虑为每个对象制作一个列表,如CPU,RAM,只是将EventChanged发送到整个对象,但我试图最大限度地减少CPU使用率,IMHO将PropertyChanged提升到所有对象,而我只想更新五个中的两个,这不是一个好方法,因为整个对象值将被刷新。
对
有,看看这个:PropertyChanged。Fody
那么你所要做的就是加上:
using PropertyChanged;
...
[ImplementPropertyChanged]
public class MyClass
{
public object Object {get;set;}
// INotifyPropertyChanged implemented automatically @ compile-time
}