Sobes.tech
Junior

INotifyPropertyChanged interfeysi nə üçün istifadə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

INotifyPropertyChanged interfeysi müştərilərə (adətən istifadəçi interfeysi elementlərinə) bir xüsusiyyətin dəyərinin dəyişdiyini bildirmək üçün istifadə olunur. Bu, MVVM (Model-View-ViewModel) şablonunun və WPF kimi UI çərçivələrində məlumatların bağlanmasının əsas mexanizmdir.

Bu interfeysi həyata keçirən sinifdə bir xüsusiyyətin dəyəri dəyişdikdə:

  1. PropertyChanged hadisə idarəedicisi çağırılır.
  2. İdarəedici, dəyişən xüsusiyyətin adını ehtiva edən PropertyChangedEventArgs tipində arqumentləri alır.
  3. Bu hadisəyə abunə olan UI elementləri və ya digər müştərilər bildiriş alır və yeni dəyərə uyğun olaraq göstəricilərini yeniləyə bilərlər.

İcra nümunəsi:

using System.ComponentModel;
using System.Runtime.CompilerServices;

public class MyData : INotifyPropertyChanged
{
    private string _name;

    public string Name
    {
        get { return _name; }
        set
        {
            if (_name != value) // Dəyər həqiqətən dəyişib- dəyişmədiyini yoxlayırıq
            {
                _name = value;
                OnPropertyChanged(); // Bildiriş metodunu çağırırıq
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

.NET 6 və yuxarı versiyalarda [ObservableProperty] atributundan istifadə etmək mümkündür, bu CommunityToolkit.Mvvm paketindən boilerplate kodunu avtomatik olaraq yaradır:

using CommunityToolkit.Mvvm.ComponentModel;

public partial class MyData : ObservableObject
{
    [ObservableProperty]
    private string _name;
}