2014-04-15 31 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

回答