Junior — Middle
Πώς μπορεί να υλοποιηθεί ένας μηχανισμός ειδοποίησης αλλαγών ιδιοτήτων στα μοντέλα δεδομένων στο .NET;
sobes.tech AI
Απάντηση από AI
Στο .NET, για την υλοποίηση ειδοποιήσεων αλλαγής ιδιοτήτων στα μοντέλα δεδομένων, χρησιμοποιείται συνήθως η διεπαφή INotifyPropertyChanged. Ορίζει το γεγονός PropertyChanged, το οποίο καλείται όταν αλλάζει η τιμή μιας ιδιότητας.
Παράδειγμα υλοποίησης:
using System.ComponentModel;
public class Person : INotifyPropertyChanged
{
private string name;
public string Name
{
get => name;
set
{
if (name != value)
{
name = value;
OnPropertyChanged(nameof(Name));
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
Όταν αλλάζει η ιδιότητα Name, καλείται η μέθοδος OnPropertyChanged, η οποία ειδοποιεί τους συνδρομητές ότι η ιδιότητα άλλαξε. Αυτό χρησιμοποιείται συχνά στο μοτίβο MVVM για ενημέρωση του UI όταν αλλάζουν τα δεδομένα.