Ho recentemente iniziato a studiare il modello MVVM con WPF per un progetto imminente. Ho iniziato con Josh Smith's MSDN article. Ho una domanda (molte, ma iniziamo con una):MVVM (con WPF): associazione di più viste alla stessa vista Modello
Ho un IndividualViewModel che espone le proprietà del modello. Ho bisogno di due viste "Aggiungi persona" e "Modifica persona" che sono molto simili, come puoi immaginare. Quello che ho fatto attualmente è di avere 2 sottoclassi AddIndividualViewModel e EditIndividualViewModel che espongono rispettivamente i comandi Aggiungi e Modifica. Ho anche 2 viste denominate simili che si legano a queste.
Ora questo metodo funziona e queste classi sono comunque abbastanza piccole, ma mi chiedo se sia possibile per me avere solo un modello di visualizzazione, che espone entrambi i comandi. Avrei ancora 2 viste che si legherebbero a questo stesso modello di vista, esponendo il comando appropriato come un pulsante. Non sono abbastanza sicuro di come farlo. Nei principali risorse della finestra ho qualcosa di simile:
<DataTemplate DataType="{x:Type ViewModels:AddIndividualViewModel}">
<Views:AddIndividualView />
</DataTemplate>
Con questo metodo di rilegatura si può avere solo un uno-a-uno vincolante, vale a dire la stessa vista viene sempre visualizzato per un determinato modello di vista. C'è un modo per cambiare automaticamente la vista a seconda di una proprietà sul modello di vista (ad esempio IndividualViewModel.Mode). C'è un approccio diverso che dovrei prendere in considerazione?
Si noti che la finestra principale ha una collezione di modelli di visualizzazione e li mostra in una scheda.
Grazie!
Sembra che il codice sia mancante. Potresti aggiornare la tua risposta con lo snippet di codice, per favore? – PlagueHammer