Binden von Windows Forms-Steuerelementen an Daten in Visual Studio

Gilt für:yes Visual Studio Visual Studio nofür Mac noVisual Studio Code

Sie können Daten für Benutzer der Anwendung anzeigen, indem Sie Daten an Windows Forms binden. Um diese datengebundenen Steuerelemente zu erstellen, ziehen Sie Elemente aus dem Datenquellenfenster auf den Windows Forms Designer in Visual Studio.

Data Source drag operation

Tipp

Wenn das Datenquellenfenster nicht sichtbar ist, können Sie es öffnen, indem Sie "AndereWindows-Datenquellen>anzeigen>" auswählen oder UMSCHALTALT+Ddrücken+. Sie müssen ein Projekt in Visual Studio öffnen, um das Fenster "Datenquellen " anzuzeigen.

Bevor Sie Elemente ziehen, können Sie den Typ des Steuerelements festlegen, an das Sie binden möchten. Je nachdem, ob Sie die Tabelle selbst oder eine einzelne Spalte auswählen, werden verschiedene Werte angezeigt. Sie können auch benutzerdefinierte Werte festlegen. Für eine Tabelle bedeutet Details , dass jede Spalte an ein separates Steuerelement gebunden ist.

Bind data source to DataGridView

BindingSource- und BindingNavigator-Steuerelemente

Die BindingSource-Komponente dient zwei Zwecken. Zunächst stellt es eine Ebene der Abstraktion bereit, wenn die Steuerelemente an Daten gebunden werden. Steuerelemente im Formular sind an die BindingSource Komponente gebunden, anstatt direkt an eine Datenquelle zu verfügen. Zweitens kann so eine Auflistung von Objekten verwaltet werden. Wenn Sie zur BindingSource-Komponente einen Typ hinzuzufügen, wird eine Liste dieses Typs erstellt.

Weitere Informationen über die BindingSource-Komponente finden Sie unter:

Das BindingNavigator-Steuerelement bietet eine Benutzeroberfläche zum Navigieren durch Daten, die von einer Windows-Anwendung angezeigt werden.

Binden an Daten in einem DataGridView-Steuerelement

Für ein DataGridView-Steuerelement ist die gesamte Tabelle an dieses einzelne Steuerelement gebunden. Wenn Sie ein DataGridView-Objekt in das Formular ziehen, wird auch ein Toolstreifen zum Navigieren von Datensätzen (BindingNavigator) angezeigt. Die Komponenten DataSet, TableAdapter, BindingSource und BindingNavigator werden in der Komponentenleiste angezeigt. In der folgenden Abbildung wird auch ein TableAdapterManager hinzugefügt, da die Tabelle "Kunden" eine Beziehung zur Tabelle "Bestellungen" aufweist. Diese Variablen werden im automatisch generierten Code als private Mitglieder in der Formularklasse deklariert. Der automatisch generierte Code zum Ausfüllen der DataGridView befindet sich im Form_Load Ereignishandler. Der Code zum Speichern der Daten zum Aktualisieren der Datenbank befindet sich im Save Ereignishandler für bindingNavigator. Sie können diesen Code nach Bedarf verschieben oder ändern.

GridView with BindingNavigator

Sie können das Verhalten der DataGridView und des BindingNavigator anpassen, indem Sie in der oberen rechten Ecke der einzelnen Elemente auf das Smarttag klicken:

DataGridView and Binding Navigator smart tags

Wenn die Steuerelemente, die Ihre Anwendung benötigt, nicht innerhalb des Datenquellenfensters verfügbar sind, können Sie Steuerelemente hinzufügen. Weitere Informationen finden Sie unter Hinzufügen benutzerdefinierter Steuerelemente zum Fenster "Datenquellen".

Sie können Elemente auch aus dem Datenquellenfenster auf Steuerelemente ziehen, die bereits auf einem Formular ausgeführt werden, um das Steuerelement an Daten zu binden. Ein Steuerelement, das bereits an Daten gebunden ist, hat seine Datenbindungen zurückgesetzt auf das Element, das zuletzt auf das Element gezogen wurde. Um gültige Drop-Ziele zu sein, müssen Steuerelemente in der Lage sein, den zugrunde liegenden Datentyp des Elements anzuzeigen, der aus dem Datenquellenfenster auf ihn gezogen wurde. Beispielsweise ist es ungültig, ein Element zu ziehen, das einen Datentyp DateTime auf ein CheckBoxElement hat, da die CheckBox Anzeige eines Datums nicht möglich ist.

Binden an Daten in einzelnen Steuerelementen

Wenn Sie eine Datenquelle an Details binden, wird jede Spalte im Dataset an ein separates Steuerelement gebunden.

Bind data source to details

Wichtig

Beachten Sie, dass Sie in der vorherigen Abbildung die Eigenschaft "Orders" der Tabelle "Kunden" und nicht aus der Tabelle "Bestellungen" ziehen. Durch Bindung an die Eigenschaft werden Navigationsbefehle, die in dataGridView vorgenommen wurden, sofort in den Customer.Orders Detailssteuerelementen angezeigt. Wenn Sie aus der Tabelle "Bestellungen" gezogen wurden, würden die Steuerelemente weiterhin an das Dataset gebunden, aber nicht mit dem DataGridView synchronisiert werden.

Die folgende Abbildung zeigt die standardmäßigen datengebundenen Steuerelemente, die dem Formular hinzugefügt werden, nachdem die Eigenschaft "Orders" in der Tabelle "Kunden" an Details im Fenster " Datenquellen " gebunden ist.

Orders table bound to details

Beachten Sie auch, dass jedes Steuerelement über ein Smarttag verfügt. Dieses Tag ermöglicht Anpassungen, die nur für dieses Steuerelement gelten.

Weitere Informationen