Junior
NotifyPropertyChanged interfeysi nima uchun ishlatiladi?
sobes.tech AI
AIdan javob
INotifyPropertyChanged interfeysidan foydalaniladi mijozlarga (odatda foydalanuvchi interfeys elementlariga) xususiyat qiymati o'zgarganligini bildirish uchun. Bu MVVM (Model-View-ViewModel) shabloni va WPF kabi UI freymvorklarida ma'lumotlarni bog'lash uchun asosiy mexanizmdir.
Bu interfeysni amalga oshirgan sinfda xususiyat qiymati o'zgarganda:
PropertyChangedvoqeasi chaqiriladi.- Voqeani boshqaruvchi
PropertyChangedEventArgsturidagi argumentlarni oladi, ular o'zgargan xususiyat nomini o'z ichiga oladi. - Bu voqeaga yozilgan UI elementlari yoki boshqa mijozlar bildirishnoma oladi va yangi qiymatga muvofiq o'z ko'rsatmalarini yangilashlari mumkin.
Amalga oshirish misoli:
using System.ComponentModel;
using System.Runtime.CompilerServices;
public class MyData : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value) // Haqiqatan o'zgarganligini tekshirish
{
_name = value;
OnPropertyChanged(); // Bildirish metodini chaqirish
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
.NET 6 va undan yuqori versiyalarda [ObservableProperty] atributidan foydalanish mumkin, bu CommunityToolkit.Mvvm paketidan boilerplate-kodni avtomatik ravishda generatsiya qiladi:
using CommunityToolkit.Mvvm.ComponentModel;
public partial class MyData : ObservableObject
{
[ObservableProperty]
private string _name;
}