Junior
Ի՞նչ է նշանակում INotifyPropertyChanged ինտերֆեյսը։
sobes.tech AI
Պատասխան AI-ից
INotifyPropertyChanged ինտերֆեյսը օգտագործվում է հաճախորդներին (հատկապես օգտագործողի ինտերֆեյսի տարրերին) տեղեկացնելու համար, որ հատկության արժեքը փոխվել է: Սա կարևոր մեխանիզմ է MVVM (Model-View-ViewModel) ձևանմուշի և տվյալների կապի համար UI շրջանակներում, ինչպիսիք են WPF-ը:
Երբ այն դասի հատկության արժեքը փոխվում է, որը իրականացնում է այս ինտերֆեյսը,
- Կոչվում է
PropertyChangedիրադարձության հսկողը: - Հսկողը ստանում է
PropertyChangedEventArgsտիպի արգումենտներ, որոնք պարունակում են փոխված հատկության անունը: - Այս իրադարձությանը գրանցված UI տարրերը կամ այլ հաճախորդները ստանում են ծանուցում և կարող են թարմացնել իրենց ցուցադրությունը նոր արժեքով:
Իմպլեմենտացիայի օրինակ:
using System.ComponentModel;
using System.Runtime.CompilerServices;
public class MyData : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value) // Ստուգում, արդյոք արժեքը իսկապես փոխվել է
{
_name = value;
OnPropertyChanged(); // Ծանուցման մեթոդը կանչել
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
.NET 6 և ավելի նոր տարբերակներում կարող եք օգտագործել [ObservableProperty] ախտանիշը CommunityToolkit.Mvvm փաթեթից՝ ավտոմատ կերպով գեներացնելու համար բոիլեռփրինտ կոդը:
using CommunityToolkit.Mvvm.ComponentModel;
public partial class MyData : ObservableObject
{
[ObservableProperty]
private string _name;
}