Änderungsbenachrichtigung in der Windows Forms-Datenbindung

Aktualisiert: November 2007

Die Änderungsbenachrichtigung ist einer der wichtigsten Bestandteile der Windows Forms-Datenbindung. Um sicherzustellen, dass die Datenquelle und die gebundenen Steuerelemente immer über aktuelle Daten verfügen, müssen Sie die Änderungsbenachrichtigung für die Datenbindung hinzufügen. Der Hauptzweck liegt darin, dass gebundene Steuerelemente über Änderungen an der zugehörigen Datenquelle benachrichtigt werden und die Datenquelle über Änderungen benachrichtigt wird, die an den gebundenen Eigenschaften eines Steuerelements vorgenommen wurden.

Je nach der Art der Datenbindung gibt es unterschiedliche Arten der Änderungsbenachrichtigung:

  • Einfache Bindung, bei der eine einzelne Steuerelementeigenschaft an eine einzelne Instanz eines Objekts gebunden wird.

  • Listenbasierte Bindung, bei der eine einzelne Steuerelementeigenschaft an die Eigenschaft eines Elements in einer Liste oder eine Steuerelementeigenschaft an eine Liste von Objekten gebunden wird.

Darüber hinaus müssen Sie beim Erstellen von Windows Forms-Steuerelementen, die für Datenbindung vorgesehen sind, das PropertyNameChanged-Muster auf die Steuerelemente anwenden, sodass Änderungen an den gebundenen Eigenschaften eines Steuerelements an die Datenquelle weitergegeben werden.

Änderungsbenachrichtigung für einfache Bindung

Bei einfacher Bindung müssen Geschäftsobjekte Änderungsbenachrichtigung bereitstellen, wenn sich der Wert einer gebundenen Eigenschaft ändert. Hierfür müssen Sie für jede Eigenschaft des Geschäftsobjekts ein PropertyNameChanged-Ereignis verfügbar machen und die Geschäftsobjekte mit BindingSource oder der bevorzugten Methode an Steuerelemente binden, in der die Geschäftsobjekte die INotifyPropertyChanged-Schnittstelle implementieren und ein PropertyChanged-Ereignis auslösen, sobald sich der Wert einer Eigenschaft ändert. Weitere Informationen finden Sie unter Gewusst wie: Implementieren der INotifyPropertyChanged-Schnittstelle. Wenn Sie Objekte verwenden, die die INotifyPropertyChanged-Schnittstelle implementieren, müssen Sie zum Binden des Objekts an ein Steuerelement nicht die BindingSource verwenden, sondern sollten stattdessen besser die BindingSource verwenden.

Änderungsbenachrichtigung für listenbasierte Bindung

In Windows Forms beruht die Bereitstellung von Informationen über Eigenschaftenänderungen (Änderung eines Listenelement-Eigenschaftenwerts) und Listenänderungen (Löschen oder Hinzufügen eines Elements aus bzw. zur Liste) an gebundene Steuerelemente auf einer gebundenen Liste. Listen, die für Datenbindung verwendet werden, müssen daher die IBindingList implementieren, die beide Arten der Änderungsbenachrichtigung bereitstellt. Die BindingList<T> ist eine generische Implementierung der IBindingList und ist für die Verwendung mit Windows Forms-Datenbindung vorgesehen. Sie können eine BindingList<T> mit einem Geschäftsobjekttyp erstellen, der INotifyPropertyChanged implementiert, und die Liste konvertiert die PropertyChanged-Ereignisse automatisch in ListChanged-Ereignisse. Wenn die gebundene Liste keine IBindingList ist, müssen Sie die Liste der Objekte mithilfe der BindingSource-Komponente an Windows Forms-Steuerelemente binden. Die BindingSource-Komponente stellt, ähnlich wie die BindingList<T>, eine Konvertierung von Eigenschaften zu Listen bereit. Weitere Informationen finden Sie unter Gewusst wie: Auslösen von Änderungsbenachrichtigungen mithilfe von "BindingSource" und der "INotifyPropertyChanged"-Schnittstelle.

Änderungsbenachrichtigung für benutzerdefinierte Steuerelemente

Für das Steuerelement müssen Sie für jede Eigenschaft, die an Daten gebunden werden soll, ein PropertyNameChanged-Ereignis verfügbar machen. Die Änderungen an der Steuerelementeigenschaft werden dann an die gebundene Datenquelle weitergegeben. Weitere Informationen finden Sie unter Gewusst wie: Anwenden des PropertyNameChanged-Musters

Siehe auch

Konzepte

Von Windows Forms unterstützte Datenquellen

Datenbindung und Windows Forms

Referenz

BindingSource

INotifyPropertyChanged

BindingList<T>

Weitere Ressourcen

Datenbindung in Web Forms