2014-04-15 180 views
1

我目前使用WPF和實現模型相關的類派生INotifyPropertyChanged。我發現聲明一些輔助方法是非常有用的。所以我想自動添加這些輔助方法:擴展方法到接口

public static class INotifyPropertyChangedHelper 
{ 
    static void notifyPropertyChanged(this INotifyPropertyChanged propertyChanged, string PropertyName = "") 
    { 
     // errors here 
     propertyChanged.PropertyChanged(propertyChanged, new PropertyChangedEventArgs(PropertyName)); 
    } 
    static bool setField<T>(this INotifyPropertyChanged propertyChanged, ref T field, T value, [CallerMemberName]string propertyName = "") 
    { 
     if (EqualityComparer<T>.Default.Equals(field, value)) return false; 
     field = value; 
     propertyChanged.notifyPropertyChanged(propertyName); 
     return true; 
    } 
} 

給了我一個編譯器錯誤

事件「System.ComponentModel.INotifyPropertyChanged.PropertyChanged」只有 可以出現在+的左手邊=或 - =」因爲是的PropertyChanged事件

有沒有辦法解決這個問題的一種優雅的方式

+0

也許這將幫助:http://www.blackwasp.co.uk/INotifyPropertyChangedExt.aspx – Euphoric

+0

這個答案也許會對你有所幫助:http://stackoverflow.com/a/4925143/2609288 – Baldrick

回答