基本上我想要做這樣的事情:有沒有辦法將規範的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