Junior
K čemu slouží rozhraní INotifyPropertyChanged?
sobes.tech AI
Odpověď od AI
Rozhraní INotifyPropertyChanged se používá k oznámení klientům (obvykle prvkům uživatelského rozhraní), že hodnota vlastnosti se změnila. Jedná se o klíčový mechanismus pro implementaci vzoru MVVM (Model-View-ViewModel) a datové vazby ve frameworkech UI, jako je WPF.
Když se změní hodnota vlastnosti ve třídě, která toto rozhraní implementuje:
- Je volen obslužný program události
PropertyChanged. - Obslužný program obdrží argumenty typu
PropertyChangedEventArgs, které obsahují název změněné vlastnosti. - UI prvky nebo jiní klienti přihlášení k této události obdrží oznámení a mohou aktualizovat svůj vzhled podle nové hodnoty.
Příklad implementace:
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, zda se hodnota skutečně změnila
{
_name = value;
OnPropertyChanged(); // Volání metody oznámení
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
V .NET 6 a novějších verzích lze použít atribut [ObservableProperty] z balíčku CommunityToolkit.Mvvm k automatickému generování boilerplate kódu:
using CommunityToolkit.Mvvm.ComponentModel;
public partial class MyData : ObservableObject
{
[ObservableProperty]
private string _name;
}