Sobes.tech
Junior

INotifyPropertyChanged ინტერფეისი რა მიზნით გამოიყენება?

sobes.tech AI

პასუხი AI-სგან

INotifyPropertyChanged ინტერფეისი გამოიყენება მომხმარებლებისთვის (ხშირად UI ელემენტებისთვის), რათა მიაწოდოს ინფორმაცია, რომ თვისების მნიშვნელობა შეიცვალა. ეს არის ძირითადი მექანიზმი MVVM (Model-View-ViewModel) ნიმუშის და მონაცემთა დაკავშირების განხორციელებისთვის UI ჩარჩოებში, როგორიცაა WPF.

როდესაც ამ ინტერფეისს მორგებული კლასი თვისების მნიშვნელობა იცვლება:

  1. გამოიძახებათ PropertyChanged მოვლენის დამუშავებელი.
  2. დამუშავებელი იღებს PropertyChangedEventArgs ტიპის არგუმენტებს, რომლებიც შეიცავს შეცვლილი თვისების სახელწოდებას.
  3. ამ მოვლენის გამოწერილ UI ელემენტები ან სხვა მომხმარებლები იღებენ შეტყობინებას და შეუძლიათ განაახლონ თავიანთი ჩვენება ახალი მნიშვნელობის შესაბამისად.

იმპლემენტაციის მაგალითი:

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

public class MyData : INotifyPropertyChanged
{
    private string _name;

    public string Name
    {
        get { return _name; }
        set
        {
            if (_name != value) // ჭეშმარიტად შეიცვალა თუ არა მნიშვნელობა
            {
                _name = value;
                OnPropertyChanged(); // შეტყობინების მეთოდის გამოძახება
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

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

.NET 6 და შემდეგი ვერსიებში შეგიძლიათ გამოიყენოთ [ObservableProperty] ატრიბუტი CommunityToolkit.Mvvm პაკეტიდან, რომელიც ავტომატურად გენერირებს ბოილერპლეიტ კოდს:

using CommunityToolkit.Mvvm.ComponentModel;

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