Junior
Az INotifyPropertyChanged interfész mire szolgál?
sobes.tech MI
Válasz az MI-től
Az INotifyPropertyChanged interfész arra szolgál, hogy értesítse az ügyfeleket (általában felhasználói felület elemeket), hogy egy tulajdonság értéke megváltozott. Ez egy kulcsfontosságú mechanizmus az MVVM (Model-View-ViewModel) minta és az adatkötés megvalósításához olyan UI keretrendszerekben, mint a WPF.
Amikor egy osztályban, amely ezt az interfészt megvalósítja, egy tulajdonság értéke megváltozik:
- Meghívódik a
PropertyChangedesemény kezelője. - A kezelő
PropertyChangedEventArgstípusú argumentumokat kap, amelyek tartalmazzák a megváltozott tulajdonság nevét. - A felhasználói felület elemei vagy más ügyfelek, akik feliratkoztak erre az eseményre, értesítést kapnak, és frissíthetik megjelenítésüket az új érték szerint.
Implementációs példa:
using System.ComponentModel;
using System.Runtime.CompilerServices;
public class MyData : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value) // Ellenőrizzük, valóban megváltozott-e az érték
{
_name = value;
OnPropertyChanged(); // Értesítési metódus hívása
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
.NET 6 és újabb verziókban az [ObservableProperty] attribútumot lehet használni a CommunityToolkit.Mvvm csomagból, amely automatikusan generálja a boilerplate kódot:
using CommunityToolkit.Mvvm.ComponentModel;
public partial class MyData : ObservableObject
{
[ObservableProperty]
private string _name;
}