I have read the MSDN article on MVVM and I am not really convinced.
If the model already implements INotifyPropertyChanged/INotifyCollectionChanged, what’s wrong with the View binding directly against the Model?
It seems the extra ModelView introduces some code without much benefit.
Am I missing something?
I have read the MSDN article on MVVM and I am not really convinced.
Share
I was also a bit skeptical about MVVM until I watched this great presentation by Jason Dolinger. I recommend all my co-workers who are starting out in WPF and MVVM to watch it.
To answer your question more directly, even if it seems silly to bind to a ViewModel when your Model already has everything, you’ll often wind up needing one little adjustment to the Model that’s needed only by the View. Over time, these little changes will creep into your Models, where they don’t belong. It’ll make your models more complicated than they ought to be.
What I often do when I have a Model that “has it all”, is I add a ViewModel that contains one property, the Model. Then in my bindings I just bind to Model.Name, Model.Age, etc. It’s really no effort. Later on, if I need tweaks only for the View, I already have my ViewModel class ready. This also makes your code more intuitive and easier to understand. You won’t wonder, did I bind to the Model or the ViewModel in this case? It will always be the ViewModel.