I need some help about MVVM pattern.
I created a ViewModel that expose data and commands to be displayed in a listview in a View named A.
This ViewModel is also used in a view named B. In this view, i just need to expose some properties and no commands but i had to create 2 more properties.
Is it better to create a more specific ViewModel for View B even if it concerns the same object?
Difficult to answer. But i can tell you what we do for our application. We have one viewmodel, which is more or less view independant, it just functions as a wrapper for our business data and contains all the stuff that is used in almost all parts where this model is shown. Now for the view part, we have very specific viewmodels. Like a ProjectTreeViewModel or a SearchResultViewmodel, with the corresponding Item viewmodels for both of them. The Item viewmodel doesn’t need to implement all the logic again, it just needs to agregate the general model view model.
To give a better analogy:
If you have a
File,DriveandFoldermodel. You would create aFileViewModel,DriveViewModelandFolderViewModel. But only oneExplorerItemViewModel. This only needs to provide a property to expose the underlying view model. The rest is depending on your data templates.