我很抱歉,如果它是重复的,但我找不到与这个问题相似的问题。
从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,内存,然后发送EventChanged到整个对象,但是我正在尝试最小化cpu的使用率,我把PropertyChanged提升到所有的对象,而我只想更新五个对象中的两个并不是一个好的方法,因为整个对象的值都会被刷新。
问候
发布于 2015-08-26 22:16:24
是的,有,看看这个:PropertyChanged.Fody
然后你所要做的就是添加:
using PropertyChanged;
...
[ImplementPropertyChanged]
public class MyClass
{
public object Object {get;set;}
// INotifyPropertyChanged implemented automatically @ compile-time
}https://stackoverflow.com/questions/32228987
复制相似问题