Dire che ho un visore simile a questo:
public class EmployeeViewModel
{
private EmployeeModel _model;
public Color BackgroundColor { get; set; }
public Name
{
get { return _model.Name; }
set
{
_model.Name = value;
NotifyPropertyChanged(Name);
}
}
}
Quindi questo viewmodel si collega a una vista che mostra un dipendente. La cosa a cui pensare è, questo viewmodel rappresenta un dipendente, o un dipendente "visualizzabile". Viewmodel contiene alcune cose che sono specifiche della vista, ad esempio il colore di sfondo. Ci possono essere molti dipendenti, ma solo una vista dei dipendenti.
Tenendo questo a mente, quando si modifica il dipendente visualizzato, ha senso creare un nuovo EmployeeViewModel e rebindare alla vista, o semplicemente scambiare EmployeeModel. La distinzione è anche importante, o è una questione di stile?
Mi sono sempre interessato alla creazione di nuovi modelli di visualizzazione, ma sto lavorando a un progetto in cui i modellini di vista vengono creati una volta e i modelli vengono sostituiti. Non sono sicuro di come mi sento al riguardo, anche se sembra funzionare bene.