La maggior parte delle applicazioni sviluppate con Windows Phone (e non solo) adotta il pattern MVVM.
Per mantenere "attiva" la comunicazione tra View e ViewModel, quest'ultimo deve implementare un meccanismo per informare la View dei propri cambiamenti di stato, che consiste nell'implementare l'interfaccia INotifyPropertyChanged: la relativa implementazione è però un meccanismo ripetitivo, che distrae lo sviluppatore.
Esistono però librerie come PropertyChanged.Fody, che snelliscono questo compito e lo rendono semplice e rapido, creando al nostro posto tutto il codice necessario all'implementazione dell'interfaccia INotifyPropertyChanged.
Per prima cosa è necessario installare la libreria da NuGet, ad esempio con questo comando dalla console (o cercandolo dalla GUI):
PM> Install-Package PropertyChanged.Fody
Successivamente, dovremo decorare le nostre classi con l'attributo ImplementPropertyChanged:
[ImplementPropertyChanged] public class Person { public string Name { get; set; } public string Surname { get; set; } public string FullName { get { return string.Format("{0} {1}", Name, Surname); } } }
In automatico avremo che le proprietà supporteranno la notifica del cambio del loro valore, senza necessità di esplicitare ogni volta il relativo codice.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare i primary constructor di C# per inizializzare le proprietà
Hosting di componenti WebAssembly in un'applicazione Blazor static
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Usare le variabili per personalizzare gli stili CSS
Utilizzare flat e flatMap per appiattire array innestati in array
Utilizzare ChatGPT con Azure OpenAI
Gestire undefined e partial nelle reactive forms di Angular
Utilizzare Model as a Service su Microsoft Azure
Potenziare Azure AI Search con la ricerca vettoriale
Workflow di continuous deployment tramite pull request label in GitHub
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management