如何在使用 NotifyPropertyWeaver 时获取 OnPropertyChange 事件
本文关键字:获取 OnPropertyChange 事件 NotifyPropertyWeaver | 更新日期: 2024-11-03 16:46:17
我使用 NotifyPropertyWeaverMsBuildTask 来处理自动属性的 NotifyPropertyChanged。我知道当属性值更改时,OnPropertyChanged() 方法会上升。但是当这种方法被称为属性价值时,就会改变,旧价值就会丢失。有什么方法可以获得旧价值吗?
坦克斯。
如果你想
在OnPropertyChanged
中使用旧值,那就这样写
public void OnPropertyChanged(string propertyName, object before, object after)
然后,如果您的代码看起来像这样
public class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public string Name { get; set; }
public void OnPropertyChanged(string propertyName, object before, object after)
{
// do something with before/after
var propertyChanged = PropertyChanged;
if (propertyChanged != null)
{
propertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
这将被注入
public class Person : INotifyPropertyChanged
{
private string name;
public event PropertyChangedEventHandler PropertyChanged;
public string Name
{
get { return name; }
set
{
object before = Name;
name = value;
OnPropertyChanged("Name", before, Name);
}
}
public void OnPropertyChanged(string propertyName, object before, object after)
{
// do something with before/after
var propertyChanged = PropertyChanged;
if (propertyChanged != null)
{
propertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
更多信息请点击此处 https://github.com/SimonCropp/NotifyPropertyWeaver/wiki/BeforeAfter
这符合您的要求吗?
INotifyPropertyChanged
不提供捕获属性先前值的方法;您必须实现自己的值。