Junior
Zašto se koristi interfejs INotifyPropertyChanged?
sobes.tech АИ
Одговор од АИ
Interfejs INotifyPropertyChanged koristi se za obaveštavanje klijenata (obično elemenata korisničkog interfejsa) da se vrednost svojstva promenila. Ovo je ključni mehanizam za implementaciju MVVM (Model-View-ViewModel) obrasca i povezivanje podataka u UI okvirima poput WPF.
Kada se vrednost svojstva u klasi koja implementira ovaj interfejs promeni:
- Poziva se rukovalac događaja
PropertyChanged. - Rukovalac prima argumente tipa
PropertyChangedEventArgs, koji sadrže ime promenjenog svojstva. - UI elementi ili drugi klijenti pretplaćeni na ovaj događaj dobijaju obaveštenje i mogu ažurirati prikaz u skladu sa novom vrednošću.
Primer implementacije:
using System.ComponentModel;
using System.Runtime.CompilerServices;
public class MyData : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value) // Proverava da li se vrednost zaista promenila
{
_name = value;
OnPropertyChanged(); // Poziva metodu obaveštenja
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
U .NET 6 i novijim verzijama, može se koristiti atribut [ObservableProperty] iz paketa CommunityToolkit.Mvvm za automatsko generisanje boilerplate koda:
using CommunityToolkit.Mvvm.ComponentModel;
public partial class MyData : ObservableObject
{
[ObservableProperty]
private string _name;
}