Junior
INotifyPropertyChanged интерфейси эмне үчүн колдонулат?
sobes.tech AI
AIден жооп
INotifyPropertyChanged интерфейси кардарларга (одатан колдонуучу интерфейс элементтерине) мүлктүн мааниси өзгөргөнүн кабарлоо үчүн колдонулат. Бул MVVM (Model-View-ViewModel) үлгүсүн жана UI рамкаларында маалыматтарды байлоо механизмин ишке ашырууда негизги механизм болуп саналат.
Бул интерфейсти ишке ашырган класс ичинде мүлктүн мааниси өзгөргөндө:
PropertyChangedокуясынын иштеткичи чакырылат.- Иштеткич өзгөртүлгөн мүлктүн атын камтыган
PropertyChangedEventArgsтүрүндөгү аргументтерди алат. - Бул окуяга жазылгандар (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;
}