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ə:
PropertyChangedhadisə idarəedicisi çağırılır.- İdarəedici, dəyişən xüsusiyyətin adını ehtiva edən
PropertyChangedEventArgstipində arqumentləri alır. - 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;
}