sono d'accordo con entrambe le altre risposte (quelle di Kieren e Groky), ma sento che non riescono a parlare di una considerazione molto importante in questa decisione.
È necessario creare un modello di vista solo se c'è qualcosa di specifico della vista su ciò che si sta facendo. Se tutto ciò che si sta facendo è vincolante per i dati e si invocano comandi che naturalmente appartengono al modello, non c'è motivo di creare un modello di visualizzazione.
Ad esempio, si supponga:
- vostro lettore ha una proprietà Name, una proprietà Rank, un metodo di promuovere(), ed un metodo Delete().
- La tua vista è una semplice che ti permette di modificare il Nome e il Grado di qualsiasi giocatore, e ha anche pulsanti per promuovere ed eliminare i giocatori.
In questo caso l'aggiunta di un modello di vista tra la vista e il modello è inutile. Una tale visione può legarsi direttamente al modello:
- Bind TextBox.Text alla proprietà Name
- Bind Slider.Value alla proprietà Rango
- Bind sul pulsante Alza al metodo promuovere()
- Associare il pulsante Elimina per il metodo Delete()
Nota che, invece di legare il pulsante Elimina per il metodo delete() si può decidere di impostare il suo comando per ApplicationCommands.Delete e utilizzare un CommandBinding per richiamare il Metodo Delete().
Il mio punto qui è che nella maggior parte dei casi se i modelli sono ben progettati non sarà necessario inserire un oggetto modello di vista. Un modello di visualizzazione è davvero necessario solo quando è necessario tenere traccia dello stato specifico della vista (come "Player corrente"), le conversioni sono troppo complesse per essere gestite da un semplice binding oppure sono necessari comandi che influenzano diversi oggetti del modello e/o vista proprietà del modello allo stesso tempo.
Secondo la mia esperienza, se il modello è progettato correttamente, solo circa il 50% circa di tutte le visualizzazioni richiede effettivamente un modello di visualizzazione e nel caso di elementi in un elenco questo è più simile al 20%.
Un esempio di tempo in cui è possibile utilizzare un modello di visualizzazione per un elemento in un elenco è quando è necessario mantenere un flag "selezionato" separato che fa parte della vista ma non del modello e della funzionalità di base in ListBox non è abbastanza.
fonte
2010-07-17 04:58:33
+1 per "se funziona bene, è corretto (anche se viola le linee guida)" – andyp
No scherzo. +1 anche da me. –
Ho ricevuto un lol da "se funziona è corretto", ma ho visto un sacco di cose che funzionano e sono così lontane da corrette che mi fanno venir voglia di scagliare. :) – CindyH