基本上我想要做这样的事情:有没有办法将规范的OnPropertyChanged方法写成扩展方法?
public static void OnPropertyChanged(this INotifyPropertyChanged changedObject, string propertyName)
{
var handler = changedObject.PropertyChanged;
if (handler != null)
{
var e = new PropertyChangedEventArgs(propertyName);
handler(changedObject, e);
}
}
这给“System.ComponentModel.INotifyPropertyChanged.PropertyChanged只能在+ =或左手侧处 - =”
我意味着我可以解决它通过这样做:
public static void RaisePropertyChanged(this PropertyChangedEventHandler handler, object sender, string propertyName)
{
if (handler != null)
{
var e = new PropertyChangedEventArgs(propertyName);
handler(sender, e);
}
}
但调用的代码看起来不一样好:
PropertyChanged.RaisePropertyChanged(this, "Name");
VS此:
this.OnPropertyChanged("Name");
没什么大不了的,但它会是不错的能够调用它,如果它是一个实例方法。
查看[本博客文章](http://www.gamlor.info/wordpress/?p=832)及其附件。 – 2010-12-06 12:07:19