Junior
¿Para qué se utiliza la interfaz INotifyPropertyChanged?
sobes.tech AI
Respuesta de la IA
La interfaz INotifyPropertyChanged se utiliza para notificar a los clientes (generalmente elementos de la interfaz de usuario) que el valor de una propiedad ha cambiado. Este es un mecanismo clave para implementar el patrón MVVM (Model-View-ViewModel) y el enlace de datos en frameworks de UI como WPF.
Cuando el valor de una propiedad en una clase que implementa esta interfaz cambia:
- Se invoca el manejador del evento
PropertyChanged. - El manejador recibe argumentos de tipo
PropertyChangedEventArgs, que contienen el nombre de la propiedad que cambió. - Los elementos de UI u otros clientes suscritos a este evento reciben la notificación y pueden actualizar su visualización de acuerdo con el nuevo valor.
Ejemplo de implementación:
using System.ComponentModel;
using System.Runtime.CompilerServices;
public class MyData : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value) // Verifica si el valor realmente cambió
{
_name = value;
OnPropertyChanged(); // Llama al método de notificación
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
En .NET 6 y versiones superiores, se puede usar el atributo [ObservableProperty] del paquete CommunityToolkit.Mvvm para generar código boilerplate:
using CommunityToolkit.Mvvm.ComponentModel;
public partial class MyData : ObservableObject
{
[ObservableProperty]
private string _name;
}