It seems that ViewModels that I make look suspiciously like other classes and they seem to require a lot of code repetition, e.g. in a current project I have:
- SmartForm: Model that represents a data form to fill in, has properties:
- IdCode
- Title
- Description
- collection of SmartFormFields
- etc.
- SmartFormControlView View
- SmartFormControlViewModel ViewModel
- IdCode
- Title
- Description
- collection of SmartFormFields
- etc.
So my ViewModel is basically the same as my Model, just with all the OnPropertyChanged features for binding with the View.
It seems as I refactor and extend this that every little change I make to my model, I have to make a mirror change to the ViewModel.
This seems to violate a basic rule of patterns Don't Repeat Yourself.
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?