Junior
À quoi sert l'interface INotifyPropertyChanged?
sobes.tech IA
Réponse de l'IA
L'interface INotifyPropertyChanged est utilisée pour notifier les clients (généralement des éléments de l'interface utilisateur) qu'une valeur de propriété a changé. C'est un mécanisme clé pour implémenter le pattern MVVM (Model-View-ViewModel) et la liaison de données dans des frameworks UI comme WPF.
Lorsque la valeur d'une propriété dans une classe qui implémente cette interface change :
- L'événement
PropertyChangedest déclenché. - Le gestionnaire reçoit des arguments de type
PropertyChangedEventArgs, contenant le nom de la propriété modifiée. - Les éléments UI ou autres clients abonnés à cet événement reçoivent la notification et peuvent mettre à jour leur affichage en conséquence.
Exemple d'implémentation :
using System.ComponentModel;
using System.Runtime.CompilerServices;
public class MyData : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value) // Vérifie si la valeur a réellement changé
{
_name = value;
OnPropertyChanged(); // Appelle la méthode de notification
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
Dans .NET 6 et supérieur, vous pouvez utiliser l'attribut [ObservableProperty] du package CommunityToolkit.Mvvm pour générer du code boilerplate :
using CommunityToolkit.Mvvm.ComponentModel;
public partial class MyData : ObservableObject
{
[ObservableProperty]
private string _name;
}