Von Windows Forms unterstützte Datenquellen
Traditionell wurde die Datenbindung in Anwendungen verwendet, um in Datenbanken gespeicherte Daten zu nutzen. Mit der Datenbindung in Windows Forms können Sie sowohl auf Daten aus Datenbanken als auch auf Daten in anderen Strukturen zugreifen, beispielsweise auf Arrays und Sammlungen. Voraussetzung dafür ist allerdings, dass bestimmte Mindestanforderungen erfüllt sind.
Strukturen, an die eine Bindung erfolgen kann
In Windows Forms ist eine Bindung an eine Vielzahl von Strukturen möglich, von einfachen Objekten (einfache Bindung) bis hin zu komplexen Listen wie z. B. ADO.NET-Datentabellen (komplexe Bindung). Für einfache Bindungen unterstützt Windows Forms die Bindung an die öffentlichen Eigenschaften des einfachen Objekts. Die listenbasierte Bindung von Windows Forms erfordert im Allgemeinen, dass das Objekt die IList-Schnittstelle oder die IListSource-Schnittstelle unterstützt. Wenn Sie die Bindung über eine BindingSource Komponente herstellen, können Sie außerdem eine Bindung mit einem Objekt herstellen, das die IEnumerable-Schnittstelle unterstützt. Weitere Informationen über Schnittstellen im Zusammenhang mit der Datenbindung finden Sie unter Auf Datenbindung bezogene Schnittstellen.
Die folgende Liste zeigt die Strukturen, an die in Windows Forms eine Bindung erfolgen kann.
BindingSource
BindingSource ist die gängigste Windows Forms-Datenquelle und fungiert als Proxy zwischen einer Datenquelle und Windows Forms-Steuerelementen. Das allgemeine Verwendungsmuster für BindingSource besteht darin, Ihre Steuerelemente an BindingSource und BindingSource an die Datenquelle zu binden (z. B. eine ADO.NET-Datentabelle oder ein Geschäftsobjekt). BindingSource stellt Dienste bereit, die die Datenbindung ermöglichen und deren Unterstützung verbessern. So unterstützen z. B. auf Listen basierende Windows Forms-Steuerelemente wie DataGridView und ComboBox keine direkte Bindung an IEnumerable-Datenquellen. Sie können dieses Szenario jedoch unterstützen, indem Sie die Bindung über BindingSource herstellen. In diesem Fall konvertiert BindingSource die Datenquelle in eine IList.
Einfache Objekte
Windows Forms unterstützt die Bindung von Steuerelementeigenschaften an öffentliche Eigenschaften der Instanz eines Objekts unter Verwendung des Typs Binding. Windows Forms unterstützt außerdem die Bindung von listenbasierten Steuerelementen, z. B. die Bindung von ListControl an eine Objektinstanz, wenn BindingSource verwendet wird.
Array oder Sammlung
Um als Datenquelle zu fungieren, muss eine Liste die Schnittstelle IList implementieren. Ein Beispiel wäre ein Array, bei dem es sich um eine Instanz der Klasse Array handelt. Weitere Informationen zu Arrays finden Sie unter Vorgehensweise: Erstellen eines Arrays von Objekten (Visual Basic).
Im Allgemeinen sollten Sie BindingList<T> verwenden, wenn Sie Listen mit Objekten für die Datenbindung erstellen. BindingList<T> ist eine generische Version der Schnittstelle IBindingList. Die Schnittstelle IBindingList erweitert die Schnittstelle IList um Eigenschaften, Methoden und Ereignisse, die für die bidirektionale Datenbindung benötigt werden.
IEnumerable
Windows Forms-Steuerelemente können an Datenquellen gebunden werden, die nur die IEnumerable-Schnittstelle unterstützen, wenn sie über eine BindingSource-Komponente gebunden sind.
ADO.NET-Datenobjekte
ADO.NET stellt eine Reihe von Datenstrukturen zur Verfügung, die sich für die Bindung an diese Strukturen eignen. Sie unterscheiden sich hinsichtlich ihrer Ausgereiftheit und Komplexität.
DataColumn. Eine DataColumn ist der wesentliche Baustein einer DataTable, indem eine Anzahl von Spalten eine Tabelle bilden. Jede DataColumn besitzt eine DataType-Eigenschaft, die bestimmt, welche Art von Daten die Spalte enthält (zum Beispiel der Automobilhersteller in einer Tabelle zur Beschreibung von Kraftfahrzeugen). Sie können ein Steuerelement (z. B. die Eigenschaft Text eines TextBox-Steuerelements) einfach an eine Spalte in einer Datentabelle binden.
DataTable. Eine DataTable ist die Darstellung einer Tabelle, mit Zeilen und Spalten, in ADO.NET. Eine Datentabelle enthält zwei Sammlungen: DataColumn repräsentiert die Datenspalten in einer bestimmten Tabelle (die letztendlich die Art der Daten bestimmen, die in diese Tabelle eingegeben werden können), und DataRow repräsentiert die Datenzeilen in einer bestimmten Tabelle. Sie können eine komplexe Bindung eines Steuerelements an die in einer Datentabelle enthaltenen Informationen vornehmen (z. B. eine Bindung des DataGridView-Steuerelements an eine Datentabelle). Bei der Bindung an eine DataTable handelt es sich jedoch in Wirklichkeit um eine Bindung an die Standardansicht der Tabelle.
DataView. Eine DataView ist eine angepasste Ansicht einer einzelnen Datentabelle, die gefiltert oder sortiert werden kann. Eine Datenansicht ist eine „Momentaufnahme“ der Daten, die von komplexen Steuerelementen verwendet wird. Sie können eine einfache Bindung oder eine komplexe Bindung an die Daten in einer Datenansicht vornehmen. Beachten Sie jedoch, dass die Bindung an ein festes „Bild“ der Daten erfolgt und nicht an eine bereinigte, aktualisierte Datenquelle.
DataSet. Ein DataSet ist eine Sammlung von Tabellen, Beziehungen und Beschränkungen der Daten in einer Datenbank. Sie können eine einfache Bindung oder eine komplexe Bindung an die Daten in einem Datensatz vornehmen. Beachten Sie jedoch, dass die Bindung an den Standard-DataViewManager für das DataSet erfolgt (siehe nächster Punkt).
DataViewManager. Ein DataViewManager ist eine angepasste Ansicht des gesamten DataSet, analog zu einer DataView, aber mit Beziehungen. Mit einer DataViewSettings-Sammlung können Sie Standardfilter und Sortieroptionen für alle Ansichten festlegen, die der DataViewManager für eine bestimmte Tabelle umfasst.
Weitere Informationen
.NET Desktop feedback