在这段代码中,我注意到.Notify方法是一种扩展方法。为什么以及这种方法背后的代码是什么?
public class Notifier : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
(...)
public void NotifyPropertyChanged(Expression<Func<object>> property)
{
this.PropertyChanged.Notify(property);
}
}
答案 0 :(得分:2)
.NET框架不提供此扩展方法。因此,它是在代码中的某处创建的自定义扩展方法。要知道它究竟是什么,请导航到它并查看源代码(F12)。
一般来说,我认为它将使用从传递给它的表达式中提取的属性名称来引发PropertyChanged
事件。
答案 1 :(得分:0)
INotifyPropertyChanged接口用于指定订阅的客户端已更改属性的值。要实现它,您必须声明一个PropertyChanged事件。
。如上所述,注意是一种扩展方法。这个的灵魂目的.Notify必须是提出这个事件。 在内部,它必须通过做这样的事情来提升事件
PropertyChanged(this, new PropertyChangedEventArgs(info));
有关详细信息,请查看MSDN