我写ObservableValue<T>
来实现INotifyPropertyChanged
值类型作为对 .NET 类的补充ObservableCollection<T>
。
class ObservableValue<T> : INotifyPropertyChanged {
private T value;
private PropertyChangedEventHandler eh;
event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged {
add { eh += value; }
remove { eh -= value; }
}
public T Value {
get { return value; }
set {
this.value = value;
OnPropertyChanged();
}
}
void OnPropertyChanged() {
if (eh != null)
eh(this, new PropertyChangedEventArgs("Value"));
}
}
但是,要使用此类,必须绑定到ObservableValue<T>.Value
而不是仅绑定到ObservableValue<T>
. 是否可以编写一些魔术代码以ObservableValue<T>
在任何T
有效的上下文中使用?