Sobes.tech
Junior

INotifyPropertyChanged интерфейси эмне үчүн колдонулат?

sobes.tech AI

AIден жооп

INotifyPropertyChanged интерфейси кардарларга (одатан колдонуучу интерфейс элементтерине) мүлктүн мааниси өзгөргөнүн кабарлоо үчүн колдонулат. Бул MVVM (Model-View-ViewModel) үлгүсүн жана UI рамкаларында маалыматтарды байлоо механизмин ишке ашырууда негизги механизм болуп саналат.

Бул интерфейсти ишке ашырган класс ичинде мүлктүн мааниси өзгөргөндө:

  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 пакети аркылуу boilerplate-кодду автоматтык түрдө түзүүгө болот:

using CommunityToolkit.Mvvm.ComponentModel;

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