Junior
Milleks kasutatakse liidest INotifyPropertyChanged?
sobes.tech AI
Vastus AI-lt
INotifyPropertyChanged liides kasutatakse selleks, et teavitada kliente (tavaliselt kasutajaliidese elemente), et omaduse väärtus on muutunud. See on põhimehhanism MVVM (Model-View-ViewModel) mustri ja andmete sidumise jaoks UI raamistikus, nagu WPF.
Kui klassis, mis rakendab seda liidest, muutub omaduse väärtus:
- Kutsutakse välja
PropertyChangedsündmuse käsitleja. - Käsitleja saab
PropertyChangedEventArgstüüpi argumente, mis sisaldavad muudetud omaduse nime. - UI elemendid või teised kliendid, kes on sellele sündmusele tellitud, saavad teate ning võivad uuendada oma kuvamist vastavalt uuele väärtusele.
Näide rakendusest:
using System.ComponentModel;
using System.Runtime.CompilerServices;
public class MyData : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value) // Kontrollime, kas väärtus on tõesti muutunud
{
_name = value;
OnPropertyChanged(); // Kutsume teavitamise meetodi
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
Alates .NET 6 versioonist saab kasutada [ObservableProperty] atribuuti CommunityToolkit.Mvvm paketist, mis automaatselt genereerib boilerplate-koodi:
using CommunityToolkit.Mvvm.ComponentModel;
public partial class MyData : ObservableObject
{
[ObservableProperty]
private string _name;
}