In our WPF application we want to use the basic MVVM pattern. We were discussing it and some uncertainties about ViewModel/View relationship and validation came up. Would you say the following is a good understanding of it?
Every View has one and only one ViewModel and the ViewModel's purpose is to provide its View with data and handle all of its View's events and commands. (Are there instances where one ViewModel services two Views, e.g. a standard XAML input form view and a CSV Import which provides the same data as the form and thus needs to have the same validation?)
Validation is handled solely by the ViewModel when e.g. the view throws a ChangedFocus or SaveButtonPressed event, etc.
The Model is pretty dumb, simply being the data structure based on one or more tables from the database, but the model itself doesn't handle validation, for instance. It is even the ViewModel that builds up and holds the ObservableCollection of objects e.g. "Customers" and not the Model itself.
Any feedback appreciated.