title: MVVM: Modified model, how to correctly update ViewModel and View?
body: <h2>Case</h2>
  
  <p>Say I have a <code>Person</code> class, a <code>PersonViewModel</code> and a <code>PersonView</code>.</p>
  
  <p>Updating properties from <code>PersonView</code> to the <code>Person</code> model is simple enough. <code>PersonViewModel</code> contains a <code>Person</code> object and has public properties the <code>PersonView</code> binds to in order to update the Person model.</p>
  
  <p>However.</p>
  
  <p>Imagine the <code>Person</code> model can get updated by <code>Service</code>. Now the property change needs to be communicated to the <code>PersonViewModel</code> and then to the <code>PersonView</code>.</p>
  
  <p>This is how I would fix it:</p>
  
  <p>For each property on the <code>Person</code> model I would raise the PropertyChanged event. <code>PersonViewModel</code> subscribes to the PropertyChanged event of <code>Person</code>. <code>PersonViewModel</code> would then raise another PropertyChanged in order to update the <code>PersonView</code>.</p>
  
  <p>This to me seems the most obvious way but I kind of want to throw this question out there in the hope of someone showing me a nicer way. Is it really this simple or are there better ways to mark the model as modified and update the respective properties on the ViewModel?</p>
  
  <h2>Additions</h2>
  
  <p>The <code>PersonView</code>'s DataContext is <code>PersonViewModel</code>. <code>Person</code> gets populated from JSON and gets updated many times during its lifetime.</p>
  
  <p>Feel free to suggest architectual changes for my particular case.</p>
  
  <h2>Answer</h2>
  
  <p>I marked aqwert as the answer of my question since it provided me with an alternative to the solution I already proposed.</p>