title: Make a class suitable for Property Change Notification
body: <p>To implement data binding in WPF, according to MS a "class needs to provide the proper property changed notifications." [<a href="https://msdn.microsoft.com/en-us/library/ms743695%28v=vs.110%29.aspx" rel="nofollow">ref here</a>]</p>
  
  <p>AFAIK, part of setting this up means taking the following steps, if not already set up in the class (ref <a href="https://msdn.microsoft.com/en-us/library/ms743643%28v=vs.110%29.aspx#classes" rel="nofollow">this article</a> on MSDN):</p>
  
  <ul>
  <li>When properties are changed, they need call to a method to raise an event.<br>
  <ul>
  <li>This means auto-implemented properties must be changed so they use a private backing field, so <code>set</code> can change the property and also call the method to raise an event.</li>
  </ul></li>
  <li>The class needs to implement INotifyPropertyChanged.</li>
  <li>The class needs to declare the PropertyChangedEventHandler event.</li>
  <li>The event needs to be raised in something like this:    </li>
  </ul>
  
  <p>...</p>
  
  <pre><code>// Create the OnPropertyChanged method to raise the event 
  protected void OnPropertyChanged(string name)
  {
      PropertyChangedEventHandler handler = PropertyChanged;
      if (handler != null)
      {
          handler(this, new PropertyChangedEventArgs(name));
      }
  }
  </code></pre>
  
  <p>If I already have many existing classes that do not take any of these steps, what is the best way to change these classes so they change <em>only so far as is needed to make them meet these standards</em>?</p>