Un mini articolo di contorno prima di realizzare le funzioni di modifica dei dati, come sapete, in WPF le proprietà dei dati che vogliamo agganciare ai controlli dell’interfaccia utente devono scatenare l’evento PropertyChanged quando vengono modificate in modo da informare l’interfaccia utente del cambiamento del loro valore per poter fare reagire l’interfaccia stessa e aggiornarla.
Per implementarlo, solitamente le mie property usano questa forma.
/// <summary> /// ID Autore /// </summary> public const string FLD_AuthorID = "AuthorID"; /// <summary> /// ID Autore /// </summary> private string mAuthorID; /// <summary> /// ID Autore /// </summary> public string AuthorID { get { return mAuthorID; } set { mAuthorID = value; OnPropertyChanged(FLD_AuthorID); } }
Nonostante io lavori quotidianamente con C# certamente non ne conosco il 100% delle possibili funzionalità, e ho recentemente scoperto che con la versione 6 è stata aggiunta una nuova keyword che ci permette di rendere più compatto questo codice.
/// <summary> /// ID Autore /// </summary> private string mAuthorID; /// <summary> /// ID Autore /// </summary> public string AuthorID { get { return mAuthorID; } set { mAuthorID = value; OnPropertyChanged(nameof(AuthorID)); } }
La nuova keyword nameof, restituisce il nome di una classe, una property e simili, pertanto ci evita la necessità di dichiarare una stringa con il nome della property o altri sotterfugi che usano la reflection. Funziona in modo simile a typeof che invece restituisce il tipo di una classe.
Pertanto modificherò le property della nostra applicazione per applicare questa nuova definizione per la generazione dell’evento PropertyChanged.