title: INotifyPropertyChanged and Threading
body: <p>I have a base class implementing <code>INotifyPropertyChanged</code>:</p>
  
  <pre><code>protected void OnNotifyChanged(string pName)
  {
      if (PropertyChanged != null)
      {
          PropertyChanged(this, new PropertyChangedEventArgs(pName));
      }
  }
  
  public event PropertyChangedEventHandler PropertyChanged;
  </code></pre>
  
  <p>I have a derived class with a property <code>Latitude</code> like so:</p>
  
  <pre><code>private double latitude;
  
  public double Latitude
  {
      get { return latitude; }
      set { latitude = value; OnNotifyChanged("Latitude"); }
  }
  </code></pre>
  
  <p>My derived class also has a method <code>Fly</code> that manipulates <code>Latitude</code>.</p>
  
  <p>I also have a Form with a TextBox bound to <code>Latitude</code> of my derived class:</p>
  
  <pre><code>txtLat.DataBindings.Clear();    
  txtLat.DataBindings.Add("Text", bindSrc, "Latitude");
  </code></pre>
  
  <p>A thread is used to kick off <code>Fly</code> like so:</p>
  
  <pre><code>Thread tFly = new Thread(f.Fly);
  tFly.IsBackground = true;
  tFly.Start();
  </code></pre>
  
  <p>When <code>Latitude</code> changes, an exception is thrown:</p>
  
  <p><code>DataBinding cannot find a row in the list that is suitable for all bindings.</code></p>