title: How do I maintain coherency between model and view-model in MVVM pattern?
body: <p><strong>Problem Statement</strong></p>
  
  <p>I'm writing a very basic WPF application to alter the contents of a configuration file.  The data format is an XML file with a schema.  I want to use it as a learning project for MVVM, so I have duly divided the code into</p>
  
  <ul>
  <li><p><strong>Model</strong>:  C# classes auto-generated from xsd.exe</p></li>
  <li><p><strong>View-Model</strong>:  View-friendly representation of the Model.</p></li>
  <li><p><strong>View</strong>:  Xaml and empty code behind</p></li>
  </ul>
  
  <p>I understand how the View-Model can make View-binding a breeze.  However, doesn't that leave the View-Model &lt;-> Model semantics very awkward?  Xsd.exe generates C# classes with arrays for multiple XML elements.  However, at the V-VM level you need Observable Collections.</p>
  
  <p><strong>Questions:</strong></p>
  
  <p>Does this really mean I have to keep two completely different collection types representing the same data in coherence?</p>
  
  <p>What are the best practices for maintaining coherence between the Model and the View-Model?</p>