Come si fa a creare la parte ViewModel dei propri progetti MVVM?

2

A volte, quando ho intenzione di creare un programma utilizzando questo modello architettonico, ho molte difficoltà quando sono nella fase Visualizza modello.

Uso WAF Framework per sviluppare questo modello architettonico. Sono ancora un principiante.

Prima di iniziare, crei tutto il design UML o usi un altro strumento per aiutarti? Come gestisci il design dei tuoi ViewModels?

    
posta Oscar Fimbres 22.12.2011 - 21:24
fonte

1 risposta

4

ViewModel è un'astrazione della vista.

Ciò significa che devi sapere prima cosa vuoi mostrare all'utente. Almeno dovresti avere uno schizzo dettagliato di come sarà l'interfaccia utente (ci sono molti strumenti pensati per fare questo: MS Expression Blend , Balsamiq , ecc.). O persino un'interfaccia utente fittizia senza logica collegata, creata con il tuo strumento di sviluppo.

Una volta che hai la tua vista, ViewModel sarà il posto in cui tenere ogni valore associato, e ciò che potrebbe essere chiamato logica di visualizzazione, principalmente la formattazione. Un modello di vista può essere una rappresentazione di un modello, un gruppo di modelli dello stesso tipo o un'aggregazione di modelli diversi.

Un semplice esempio di Visualizza modello è la schermata di modifica con un elenco a discesa. Facciamo un esempio concreto con un utente che può essere collegato a una divisione:

public class UserModel 
{ 
   public string Username { get; set; } 
   public string EmailAddress { get; set; } 
   public int DivisionId { get; set; } 
} 

public class DivisionModel 
{ 
   public int DivisionId { get; set; } 
   public string DivisionName { get; set; } 
} 

Non avrebbe senso collegare un IEnumerable di divisioni in UserModel, quindi creiamo un modello di visualizzazione per rappresentare un utente visualizzabile, con tutti i dati necessari per avere una schermata di lavoro in cui posso selezionare una divisione per tale utente:

public class UserViewModel 
{ 
   public UserModel User { get; set; } 
   public IEnumerable<DivisionModel> Divisions {get; set;} 
} 

E questo è tutto. A seconda della lingua che userò, dovrò semplicemente inserire un elenco a discesa con IEnumerable di DivisionModels e farlo mostrare al membro Name.

    
risposta data 22.12.2011 - 21:56
fonte

Leggi altre domande sui tag