title: extension method to interface
body: <p>I am currently using WPF and implementing a model related class deriving <code>INotifyPropertyChanged</code>. I have found that declaring some helper methods is very useful. So I wanted to add these helper methods automatically:</p>
  
  <pre><code>public static class INotifyPropertyChangedHelper
  {
      static void notifyPropertyChanged(this INotifyPropertyChanged propertyChanged, string PropertyName = "")
      {
          // errors here
          propertyChanged.PropertyChanged(propertyChanged, new PropertyChangedEventArgs(PropertyName));
      }
      static bool setField&lt;T&gt;(this INotifyPropertyChanged propertyChanged, ref T field, T value, [CallerMemberName]string propertyName = "")
      {
          if (EqualityComparer&lt;T&gt;.Default.Equals(field, value)) return false;
          field = value;
          propertyChanged.notifyPropertyChanged(propertyName);
          return true;
      }
  }
  </code></pre>
  
  <p>Gives me a compiler error </p>
  
  <blockquote>
    <p>The event 'System.ComponentModel.INotifyPropertyChanged.PropertyChanged' can only
        appear on the left hand side of += or -=" because PropertyChanged is an event. </p>
  </blockquote>
  
  <p>Is there an elegant way to solve this problem?</p>