Junior
Na čo sa používa rozhranie INotifyPropertyChanged?
sobes.tech AI
Odpoveď od AI
Rozhranie INotifyPropertyChanged sa používa na oznámenie klientom (zvyčajne prvkom používateľského rozhrania), že hodnota vlastnosti sa zmenila. Ide o kľúčový mechanizmus na implementáciu vzoru MVVM (Model-View-ViewModel) a viazania dát v UI frameworkoch ako WPF.
Keď sa hodnota vlastnosti v triede, ktorá toto rozhranie implementuje, zmení:
- Volá sa spracovateľ udalosti
PropertyChanged. - Spracovateľ dostane argumenty typu
PropertyChangedEventArgs, ktoré obsahujú názov zmenenej vlastnosti. - UI prvky alebo iní klienti prihlásení na túto udalosť dostanú oznámenie a môžu aktualizovať svoj zobrazenie v súlade s novou hodnotou.
Príklad implementácie:
using System.ComponentModel;
using System.Runtime.CompilerServices;
public class MyData : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value) // Kontrola, či sa hodnota naozaj zmenila
{
_name = value;
OnPropertyChanged(); // Zavolanie metódy oznámenia
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
V .NET 6 a novších verziách môžete použiť atribút [ObservableProperty] z balíka CommunityToolkit.Mvvm na generovanie boilerplate kódu:
using CommunityToolkit.Mvvm.ComponentModel;
public partial class MyData : ObservableObject
{
[ObservableProperty]
private string _name;
}