title: WPF Notify PropertyChanged for a Get Property
body: <p>I have the <code>INotifyPropertyChanged</code> implemented using <code>CallerMemberName</code></p>
  
  <pre><code>public event PropertyChangedEventHandler PropertyChanged;
  
  protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
  {
   if (PropertyChanged != null)
      {
          PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
      }
  }
  </code></pre>
  
  <p>So this could be called in the setter of any property as - <code>OnPropertyChanged()</code> which would notify property changed event whenever it is being set. This is not the case for a property a getter only. For example,</p>
  
  <pre><code>private DateTime _dob;
  public DateTime DateOfBirth
  {
      get
      {
          return _dob;
      }
      private set
      {
          _dob = value;
          OnPropertyChanged();
          OnPropertyChanged("Age");
      }
  }
  
  public int Age
  {
      get
      {
          return DateTime.Today.Year - _dob.Year;
      }
  }
  </code></pre>
  
  <p><code>OnPropertyChanged()</code> works fine for DateOfBirth, but to notify Age changed, I should remember to call <code>OnPropertyChanged("Age")</code> within the setter of <code>DateOfBirth</code>. I feel this makes the code difficult to maintain over time. If a new property depends on Age, that also needs to be Notified in the setter of DateOfBirth. Is there a better way to do this without calling OnPropertyChanged("Age")?</p>