Von Windows Forms unterstützte Datenquellen

Aktualisiert: November 2007

Herkömmlicherweise wurde die Datenbindung in Anwendungen verwendet, um in Datenbanken gespeicherte Daten nutzen zu können. Mit der Datenbindung von Windows Forms können Sie auf Daten zugreifen, die in Datenbanken sowie in anderen Strukturen, z. B. Arrays oder Auflistungen, enthalten sind (sofern bestimmte Mindestanforderungen erfüllt sind).

Strukturen, an die eine Bindung möglich ist

In Windows Forms können angefangen von einfachen Objekten (einfache Bindung) bis hin zu komplexen Listen wie ADO.NET-Datentabellen (komplexe Bindung) Bindungen an eine Vielzahl von Strukturen vorgenommen werden. Bei der einfachen Bindung unterstützt Windows Forms das Binden an öffentliche Eigenschaften im einfachen Objekt. Die listenbasierte Bindung in 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 ausführen, können Sie zusätzlich eine Bindung an ein Objekt vornehmen, das die IEnumerable-Schnittstelle unterstützt. Weitere Informationen zu Schnittstellen in Zusammenhang mit der Datenbindung finden Sie unter Auf Datenbindung bezogene Schnittstellen.

Die folgende Liste enthält die Strukturen, an die Sie in Windows Forms eine Bindung vornehmen können.

  • BindingSource
    BindingSource ist die häufigste Windows Forms-Datenquelle. Sie fungiert als Proxy zwischen einer Datenquelle und Windows Forms-Steuerelementen. Das allgemeine Verwendungsmuster von BindingSource sieht vor, Steuerelemente an BindingSource und BindingSource an die Datenquelle (z. B. eine ADO.NET-Datenquelle oder ein Geschäftsobjekt) zu binden. BindingSource stellt Dienste bereit, die die Unterstützung der Datenbindung ermöglichen und den Grad der Unterstützung verbessern. Listenbasierte Steuerelemente in Windows Forms, z. B. DataGridView und ComboBox, bieten beispielsweise keine direkte Unterstützung für die Bindung an IEnumerable-Datenquellen. Sie können dieses Szenario jedoch aktivieren, indem Sie die Bindung über BindingSource vornehmen. In diesem Fall konvertiert BindingSource die Datenquelle in IList.

  • Einfache Objekte
    Windows Forms unterstützt in Objektinstanzen mithilfe des Binding-Typs die Datenbindung von Steuerelementeigenschaften an öffentliche Eigenschaften. Außerdem unterstützt Windows Forms die Bindung listenbasierter Steuerelemente, z. B. ListControl, an eine Objektinstanz, wenn BindingSource verwendet wird.

  • Array oder Auflistung
    Damit eine Liste als Datenquelle verwendet werden kann, muss sie die IList-Schnittstelle implementieren. Ein Beispiel dafür ist ein Array, das eine Instanz der Array-Klasse darstellt. Weitere Informationen zu Arrays finden Sie unter Gewusst wie: Erstellen eines Arrays von Objekten. Weitere Informationen zu Auflistungen finden Sie unter Beziehungen zwischen Objekten.

    Im Allgemeinen sollten Sie BindingList<T> verwenden, wenn Sie Objektlisten für die Datenbindung erstellen. BindingList<T> ist eine generische Version der IBindingList-Schnittstelle. Die IBindingList-Schnittstelle ist eine Erweiterung der IList-Schnittstelle. Über sie werden Eigenschaften, Methoden und Ereignisse hinzugefügt, die für die bidirektionale Datenbindung erforderlich sind.

  • IEnumerable
    Windows Forms-Steuerelemente können an Datenquellen gebunden werden, die nur die IEnumerable-Schnittstelle unterstützen, wenn sie über eine BindingSource-Komponente gebunden werden.

  • ADO.NET-Datenobjekte
    ADO.NET bietet eine Reihe von Datenstrukturen, die für die Bindung geeignet sind. Diese Strukturen unterscheiden sich hinsichtlich ihres Entwicklungsgrades und ihrer Komplexität.

    • DataColumn. DataColumn ist der wichtigste Baustein von DataTable, da eine Tabelle sich aus einer Reihe von Spalten zusammensetzt. Jedes DataColumn-Objekt verfügt über eine DataType-Eigenschaft, die die Art der Daten bestimmt, die in der Spalte enthalten sind (in einer Tabelle zur Beschreibung von Autos z. B. die Marke der Autos). Ein Steuerelement (bei einem TextBox-Steuerelement z. B. die Text-Eigenschaft) kann mithilfe der einfachen Bindung an eine Spalte in einer Datentabelle gebunden werden.

    • DataTable. DataTable ist die Darstellung einer Tabelle mit Zeilen und Spalten, wie sie in ADO.NET verwendet wird. Eine Datentabelle umfasst zwei Auflistungen: DataColumn für die Datenspalten in einer bestimmten Tabelle (dadurch wird letztlich bestimmt, welche Arten von Daten in diese Tabelle eingegeben werden können) sowie DataRow für die Datenzeilen in einer bestimmten Tabelle. Ein Steuerelement kann mithilfe der komplexen Bindung an die Daten in einer Datentabelle gebunden werden (beispielsweise bei Bindung des DataGridView-Steuerelements an eine Datentabelle). Bei der Bindung an DataTable erstellen Sie tatsächlich eine Bindung an die Standardansicht dieser Tabelle.

    • DataView. DataView ist eine angepasste Ansicht einer einzelnen Datentabelle, die gefiltert oder sortiert werden kann. Eine Datenansicht ist eine Momentaufnahme der Daten, die von komplex gebundenen Steuerelementen verwendet werden. Für die Daten in einer Datenansicht können Sie einfache oder komplexe Bindungen vornehmen. Dabei sollten Sie jedoch beachten, dass Sie nicht Bindungen an eine saubere, aktualisierende Datenquelle, sondern an ein festes Abbild der Daten vornehmen.

    • DataSet. DataSet ist eine Auflistung von Tabellen, Beziehungen und Einschränkungen der Daten in einer Datenbank. Sie können Daten innerhalb eines DataSets mithilfe der einfachen oder komplexen Bindung binden. Stellen Sie jedoch sicher, dass Sie an den standardmäßigen DataViewManager für DataSet binden (siehe dazu den nächsten Gliederungspunkt).

    • DataViewManager. DataViewManager ist eine angepasste Ansicht des gesamten DataSet. Sie entspricht grundsätzlich DataView, enthält aber zusätzlich Beziehungen. Mit einer DataViewSettings-Auflistung können Sie standardmäßige Filter- und Sortieroptionen für beliebige Ansichten festlegen, die DataViewManager für eine bestimmte Tabelle bereitstellt.

Siehe auch

Konzepte

Änderungsbenachrichtigung in der Windows Forms-Datenbindung

Datenbindung und Windows Forms

Weitere Ressourcen

Datenbindung in Web Forms