Per prima cosa, dai un'occhiata a le basi di MVVM per capire meglio come dovrebbe funzionare il modello. La versione specifica di WPF potrebbe essere interessante.
In generale, il modello ha il seguente aspetto:
View
< = (bound) = > ViewModel
< = (chiamate di funzione + callback asincroni) = > Model
Tenendo presente questo schema, dovrebbe essere un po 'più chiaro che è responsabilità di ViewModel
notificare View
quando i dati sono cambiati. Pertanto, ViewModel
deve implementare INotifyPropertyChanged
.
Per convalidare ulteriormente questa decisione, puoi vedere che View
deve essere completamente ignorante di Model
e deve conoscere solo il suo ViewModel
.
Per semplificare l'implementazione di INotifyPropetyChanged
, prendi in considerazione la creazione di una classe base ViewModel
che l'altro ViewModel
s erediti da. In questo modo devi solo scrivere il codice una volta. Questo esempio dalla libreria MSDN ha una funzione di esempio NotifyPropertyChanged()
che puoi usare come punto di riferimento. Credo che .NET 4.5 e versioni successive consentano la riflessione per essere utilizzato per il nome dell'oggetto anziché fare affidamento sulle stringhe passate.