title: Updating Properties and ping-pong event
body: <p>in a WPF application that uses Catel for MVVM Framework I've got  3 diffetrent properties in a viewmodel</p>
  
  <pre><code>    public double? QtaDiv1 { get; set; }
  
      public double? Exchange{ get; set; }
  
      public double? QtaDiv2 { get; set; }
  </code></pre>
  
  <p>I've overriden the OnPropertyChanged as </p>
  
  <pre><code>protected async override void OnPropertyChanged(AdvancedPropertyChangedEventArgs e)
      {
          if (e.PropertyName == "Data")
          {
              await GetValueDate(e);
          }
          else if (e.PropertyName == "QtaDiv1" || e.PropertyName == "Exchange")
          {
              ChangeQtaDiv2(QtaDiv1, Exchange);
          }
          if (e.PropertyName == "QtaDiv2")
          {
              ChangeQtaDiv1(QtaDiv2, Exchange);
          }
          else if (e.PropertyName == "SelectedCross")
          {
              await GetValueDate(e);
              CheckForSplitVisibility();
          }
  
          base.OnPropertyChanged(e);
      }
  </code></pre>
  
  <p>And what  I do is if QtaDiv1 and Exchangehave values I calculate QtaDiv2
  Otherwise if QtaDiv2 is changed by the user (and Exchange) I update QtaDiv1. </p>
  
  <p>This works fine till I update QtaDiv2, since at this point I got a PropertyChanged on QtaDiv1 that calls the update on QtaDiv2 and so on...</p>
  
  <p>How can I break this spell??? I thought of setting a string field that holds the changing value but If I do so I've to suppress the RaisePropertyChanged notification (and I've to convert to backing field property) so I won't get the Validation on them</p>
  
  <p>Thanks</p>