Diciamo che ho un programma che deve rappresentare alcuni dati in due modi diversi . Se voglio realizzare questo avendo due ViewModels diversi, è sembra che entrambi dovrebbero condividere la stessa istanza dell'oggetto Model. Quindi come viene generalmente eseguito in MVVM con WPF?In che modo un modello viene generalmente condiviso tra oggetti ViewModel?
Un modo mi viene in mente è che i costruttori ViewModel potrebbero assumere un istanza del modello appropriato e tutto il cablaggio potrebbe essere fatto in un gestore per l'evento Application.Startup. Non ricordo di aver visto questo fatto in nessuno degli esempi che ho visto fino ad ora, ma potrei averlo appena perso.
Finora sembra come la maggior parte del tempo, gli esempi mostrano solo le ViewModels creando istanze delle classi del modello stessi, che potrebbe funzionare in alcuni casi ma non mi sembra una buona soluzione per la mia situazione, dal momento che ogni ViewModel creerebbe le proprie istanze di classi del modello. Sembra anche che come quello eliminerebbe la possibilità di sostituire il modello con uno diverso, che potrebbe essere desiderato, come nel caso del test dell'unità. Sono indovinando che un'infrastruttura per le dipendenze o un contenitore IoC eliminerebbe il problema ? Ho usato solo l'iniezione manuale delle dipendenze finora.
In un altro esempio, sembrava che la vista creata in sé gli oggetti del Modello e li passò ai ViewModels, che non sembra una grande idea sia, dal momento che la vista non dovrebbe sapere nulla del modello ?
Alcuni esempi non sembrano nemmeno avere classi Model, solo Views e ViewModels.
Ci sono modi migliori che non ho menzionato?
Inoltre, dovrei utilizzare un framework di integrazione delle dipendenze o un container IoC? Come già detto, non ne ho mai usato uno in precedenza e ho pensato che potrebbe essere l'overkill per la dimensione dei programmi su cui sto lavorando al momento. Avendo non lo davvero guardato molto pesantemente, potrei sbagliarmi.
Va bene, ma come si fa generalmente? Quale classe solitamente crea l'istanza dell'oggetto Model e la trasferisce negli oggetti ViewModel appropriati? Questa è la cosa principale di cui sono confuso al momento. – foven