Junior
Kam paredzēta saskarne INotifyPropertyChanged?
sobes.tech AI
Atbilde no AI
INotifyPropertyChanged saskarne tiek izmantota, lai paziņotu klientiem (parasti lietotāja saskarnes elementiem), ka īpašības vērtība ir mainījusies. Šis ir galvenais mehānisms MVVM (Model-View-ViewModel) modeļa un datu sasaistes īstenošanai UI ietvaros, piemēram, WPF.
Kad īpašības vērtība klasē, kas īsteno šo saskarni, mainās:
- Izsauc
PropertyChangednotikuma apstrādātāju. - Apstrādātājs saņem argumentus
PropertyChangedEventArgstipā, kas satur mainītās īpašības nosaukumu. - UI elementi vai citi klienti, kas ir abonējuši šo notikumu, saņem paziņojumu un var atjaunināt savu attēlojumu atbilstoši jaunajai vērtībai.
Piemēra īstenojums:
using System.ComponentModel;
using System.Runtime.CompilerServices;
public class MyData : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value) // Pārbaudām, vai vērtība patiešām ir mainījusies
{
_name = value;
OnPropertyChanged(); // Izsauc paziņojuma metodi
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
No .NET 6 un jaunākās versijās var izmantot [ObservableProperty] atribūtu no CommunityToolkit.Mvvm pakotnes, kas automātiski ģenerē boilerplate kodu:
using CommunityToolkit.Mvvm.ComponentModel;
public partial class MyData : ObservableObject
{
[ObservableProperty]
private string _name;
}