我想在属性更改时收到通知,以便我可以在数据库中记录属性的旧值和新值。
所以我决定采用属性设置器的方法,并有一个处理所有属性的通用方法。
我创建了下面的类:
public class PropertyChangedExtendedEventArgs<T> : PropertyChangedEventArgs
{
public virtual T OldValue { get; private set; }
public virtual T NewValue { get; private set; }
public PropertyChangedExtendedEventArgs(string propertyName,
T oldValue, T newValue)
: base(propertyName)
{
OldValue = oldValue;
NewValue = newValue;
//write to database the values!!!
}
}
在我的财产上,我这样称呼它:
private string _surname;
public string Surname
{
get { return _surname; }
set
{
string temp = Surname;
_surname = value;
Helper.PropertyChangedExtendedEventArgs("Surname", temp, value);
}
}
但这是第一次使用泛型,所以很少有顾虑:
- 我如何在我的财产上调用它?
- 这是一个好方法吗?
- 我可以公开调用函数
PropertyChangedExtendedEventArgs(string propertyName, T oldValue, T newValue)
并保存到数据库吗?