Sobes.tech
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 όταν αλλάζουν τα δεδομένα.