title: Does MVVM violate DRY?
body: <p>It seems that ViewModels that I make look <em>suspiciously like other classes</em> and they seem to require a lot of code repetition, e.g. in a current project I have:</p>
  
  <ul>
  <li><strong>SmartForm</strong>: <em>Model</em> that represents a data form to fill in, has properties:
  
  <ul>
  <li>IdCode</li>
  <li>Title</li>
  <li>Description</li>
  <li>collection of SmartFormFields</li>
  <li>etc.</li>
  </ul></li>
  <li><strong>SmartFormControlView</strong> <em>View</em></li>
  <li><strong>SmartFormControlViewModel</strong> <em>ViewModel</em>
  
  <ul>
  <li>IdCode</li>
  <li>Title</li>
  <li>Description</li>
  <li>collection of SmartFormFields</li>
  <li>etc.</li>
  </ul></li>
  </ul>
  
  <p>So my <strong>ViewModel is basically the same as my Model</strong>, just with all the OnPropertyChanged features for binding with the View.</p>
  
  <p>It seems as I refactor and extend this that every little change I make to my model, I <strong>have to make a</strong> <strong>mirror change to the ViewModel</strong>.</p>
  
  <p>This seems to violate a basic rule of patterns <em>Don't Repeat Yourself</em>. </p>
  
  <p><strong>Am I implementing the MVVM pattern incorrectly or is it just an inherent characteristic of MVVM that there is always a 1-to-1 repetition going on between Model and ViewModel?</strong></p>