Junior
Wofür wird die Schnittstelle INotifyPropertyChanged verwendet?
sobes.tech KI
Antwort von AI
Das Interface INotifyPropertyChanged wird verwendet, um Clients (meist UI-Elemente) darüber zu informieren, dass sich der Wert einer Eigenschaft geändert hat. Dies ist ein Schlüsselmechanismus zur Implementierung des MVVM-Musters (Model-View-ViewModel) und der Datenbindung in UI-Frameworks wie WPF.
Wenn sich der Wert einer Eigenschaft in einer Klasse, die dieses Interface implementiert, ändert:
- Wird der Event-Handler
PropertyChangedaufgerufen. - Der Handler erhält Argumente vom Typ
PropertyChangedEventArgs, die den Namen der geänderten Eigenschaft enthalten. - UI-Elemente oder andere Clients, die auf dieses Ereignis abonniert sind, erhalten die Benachrichtigung und können ihre Anzeige entsprechend aktualisieren.
Beispiel für eine Implementierung:
using System.ComponentModel;
using System.Runtime.CompilerServices;
public class MyData : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value) // Überprüfen, ob sich der Wert tatsächlich geändert hat
{
_name = value;
OnPropertyChanged(); // Benachrichtigungsmethode aufrufen
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
Ab .NET 6 und höher kann man das Attribut [ObservableProperty] aus dem Paket CommunityToolkit.Mvvm verwenden, um Boilerplate-Code zu generieren:
using CommunityToolkit.Mvvm.ComponentModel;
public partial class MyData : ObservableObject
{
[ObservableProperty]
private string _name;
}