Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können Windows Forms-Steuerelemente und Hoststeuerelemente in einem Microsoft Office Word-Dokument oder Microsoft Office Excel-Arbeitsblatt an eine Datenquelle binden, sodass die Steuerelemente die Daten automatisch anzeigen. Sie können Daten an Steuerelemente sowohl in Projekten auf Anwendungsebene als auch in Dokumenten binden.
Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene und VSTO-Add-In-Projekte. Siehe Verfügbare Features nach Office-Anwendung und Projekttyp.
Hoststeuerelemente erweitern Objekte, die sich in den Word- und Excel-Objektmodellen befinden, z. B. Inhaltssteuerelemente in Word und benannten Bereichen in Excel. Weitere Informationen finden Sie unter Übersicht über Hostelemente und Hoststeuerelemente.
Sowohl Windows Forms als auch Hoststeuerelemente verwenden das Windows Forms-Datenbindungsmodell, das sowohl einfache Datenbindung als auch komplexe Datenbindung an Datenquellen wie Datasets und Datentabellen unterstützt. Vollständige Informationen zum Datenbindungsmodell in Windows Forms finden Sie unter "Datenbindung" und "Windows Forms".
Einfache Datenbindung
Eine einfache Datenbindung ist vorhanden, wenn eine Steuerelementeigenschaft an ein einzelnes Datenelement gebunden ist, z. B. einen Wert in einer Datentabelle. Beispielsweise verfügt das NamedRange Steuerelement über eine Value2 Eigenschaft, die an ein Feld in einem Dataset gebunden werden kann. Wenn sich das Feld im Dataset ändert, ändert sich der Wert im benannten Bereich ebenfalls. Alle Hoststeuerelemente mit Ausnahme des XMLNodes Steuerelements unterstützen einfache Datenbindung. Das XMLNodes Steuerelement ist eine Sammlung und unterstützt daher keine Datenbindung.
Um eine einfache Datenbindung an ein Hoststeuerelement auszuführen, fügen Sie der Binding Eigenschaft des Steuerelements eine DataBindings hinzu. Ein Binding Objekt stellt die einfache Bindung zwischen einem Eigenschaftswert des Steuerelements und dem Wert eines Datenelements dar.
Das folgende Beispiel veranschaulicht, wie die Value2 Eigenschaft an ein Datenelement in einem Projekt auf Dokumentebene gebunden wird.
Binding binding1 = new Binding("Value2", ds, "Customers.Names", true);
namedRange1.DataBindings.Add(binding1);
Für Anleitungen, die einfache Datenbindung demonstrieren, siehe Anleitung: Einfache Datenbindung in einem dokumentenbezogenen Projekt für ein dokumentenbezogenes Projekt und Anleitung: Einfache Datenbindung in einem VSTO-Add-In-Projekt für ein VSTO-Add-In-Projekt.
Komplexe Datenbindung
Komplexe Datenbindung ist vorhanden, wenn eine Steuerelementeigenschaft an mehrere Datenelemente gebunden ist, z. B. mehrere Spalten in einer Datentabelle. Das ListObject Steuerelement für Excel ist das einzige Hoststeuerelement, das komplexe Datenbindung unterstützt. Es gibt auch viele Windows Forms-Steuerelemente, die komplexe Datenbindung unterstützen, z. B. das DataGridView Steuerelement.
Um eine komplexe Datenbindung durchzuführen, legen Sie die DataSource Eigenschaft des Steuerelements auf ein Datenquellenobjekt fest, das von komplexer Datenbindung unterstützt wird. Beispielsweise kann die DataSource Eigenschaft des ListObject Steuerelements an mehrere Spalten in einer Datentabelle gebunden werden. Alle Daten in der Datentabelle erscheinen im ListObject-Steuerelement, und sobald sich die Daten in der Datentabelle ändern, ändert sich auch das ListObject. Eine Liste der Datenquellen, die Sie für die komplexe Datenbindung verwenden können, finden Sie unter Datenquellen, die von Windows Forms unterstützt werden.
Im folgenden Codebeispiel wird ein DataSet mit zwei DataTable Objekten erstellt und eine der Tabellen mit Daten aufgefüllt. Der Code verbindet dann das ListObject mit der Tabelle, die Daten enthält. Dieses Beispiel ist für ein Excel-Projekt auf Dokumentebene vorgesehen.
private void ListObject_DataSourceAndMember()
{
// Create a DataSet and two DataTables.
DataSet ordersDataSet = new DataSet("ordersDataSet");
DataTable tableCustomers = new DataTable("Customers");
DataTable tableProducts = new DataTable("Products");
ordersDataSet.Tables.Add(tableCustomers);
ordersDataSet.Tables.Add(tableProducts);
// Add a data to the Customers DataTable.
tableCustomers.Columns.Add(new DataColumn("LastName"));
tableCustomers.Columns.Add(new DataColumn("FirstName"));
DataRow dr = tableCustomers.NewRow();
dr["LastName"] = "Chan";
dr["FirstName"] = "Gareth";
tableCustomers.Rows.Add(dr);
// Create a list object.
Microsoft.Office.Tools.Excel.ListObject list1 =
this.Controls.AddListObject(
this.Range["A1"], "Customers");
// Bind the list object to the Customers table.
list1.AutoSetDataBoundColumnHeaders = true;
list1.DataSource = ordersDataSet;
list1.DataMember = "Customers";
}
Eine exemplarische Vorgehensweise, die komplexe Datenbindung veranschaulicht, finden Sie unter Walkthrough: Complex data binding in a document-level project for a document-level project.
Anzeigen von Daten in Dokumenten und Arbeitsmappen
In Projekten auf Dokumentebene können Sie das Fenster "Datenquellen " verwenden, um Ihren Dokumenten oder Arbeitsmappen datengebundene Steuerelemente auf einfache Weise hinzuzufügen, genauso wie sie für Windows Forms verwendet werden. Weitere Informationen zur Verwendung des Datenquellenfensters finden Sie unter Binden von Windows Forms-Steuerelementen an Daten in Visual Studio und Hinzufügen neuer Datenquellen.
Ziehen von Steuerelementen aus dem Fenster "Datenquellen"
Ein Steuerelement wird im Dokument erstellt, wenn Sie ein Objekt aus dem Datenquellenfenster auf das Dokument ziehen. Der Typ des erstellten Steuerelements hängt davon ab, ob Sie eine einzelne Spalte mit Daten oder mehrere Datenspalten binden.
Für Excel wird auf dem Arbeitsblatt für jedes einzelne Feld ein NamedRange Steuerelement erstellt, und für jeden Datenbereich, der mehrere Zeilen und Spalten enthält, wird ein ListObject Steuerelement erstellt. Sie können diese Standardeinstellung ändern, indem Sie die Tabelle oder das Feld im Fenster " Datenquellen " auswählen und dann ein anderes Steuerelement aus der Dropdownliste auswählen.
Dokumenten wird ein ContentControl Steuerelement hinzugefügt. Der Typ des Inhaltssteuerelements hängt vom Datentyp des ausgewählten Felds ab.
Binden von Daten in Projekten auf Dokumentebene während der Entwurfsphase
Die folgenden Themen zeigen Beispiele für Bindungsdaten zur Entwurfszeit:
Vorgehensweise: Auffüllen von Arbeitsblättern mit Daten aus einer Datenbank
Vorgehensweise: Auffüllen von Dokumenten mit Daten aus einer Datenbank
Vorgehensweise: Auffüllen von Dokumenten mit Daten aus Objekten
Vorgehensweise: Auffüllen von Dokumenten mit Daten aus Diensten
Vorgehensweise: Scrollen durch Datenbankdatensätze in einem Arbeitsblatt
Binden von Daten in VSTO-Add-In-Projekten
In VSTO-Add-In-Projekten können Sie Steuerelemente nur zur Laufzeit hinzufügen. Die folgenden Themen zeigen Beispiele für Bindungsdaten zur Laufzeit:
Aktualisieren von Daten, die an Hoststeuerelemente gebunden sind
Die Datenbindung zwischen einer Datenquelle und einem Hoststeuerelement umfasst eine bidirektionale Datenaktualisierung. Bei einfacher Datenbindung werden Änderungen in der Datenquelle automatisch im Hoststeuerelement wiedergegeben, aber Änderungen im Hoststeuerelement erfordern einen expliziten Aufruf, um die Datenquelle zu aktualisieren. Der Grund dafür ist, dass Änderungen in einem datengebundenen Feld in einigen Fällen nicht akzeptiert werden, es sei denn, sie werden von Änderungen in einem anderen datengebundenen Feld begleitet. Sie können beispielsweise zwei Felder haben, eine für das Alter und eine für Jahre Erfahrung. Erfahrung kann das Alter nicht überschreiten. Ein Benutzer kann das Alter nicht von 50 auf 25 aktualisieren und dann die Erfahrung von 30 auf 10, es sei denn, die Änderungen werden gleichzeitig vorgenommen. Um dieses Problem zu beheben, werden Felder mit einfacher Datenbindung nicht aktualisiert, bis die Aktualisierungen explizit durch den Code gesendet werden.
Um eine Datenquelle aus Hoststeuerelementen zu aktualisieren, die einfache Datenbindung ermöglichen, müssen Sie Aktualisierungen an die Speicherdatenquelle (z. B. a DataSet oder DataTable) und an die Back-End-Datenbank senden, wenn Ihre Lösung eine verwendet.
Sie müssen die Speicherdatenquelle nicht explizit aktualisieren, wenn Sie eine komplexe Datenbindung mithilfe des ListObject Steuerelements ausführen. In diesem Fall werden Änderungen automatisch ohne zusätzlichen Code an die Speicherdatenquelle gesendet.
Weitere Informationen finden Sie unter Anleitung: Aktualisieren einer Datenquelle mit Daten von einem Host-Steuerelement.
Verwandte Inhalte
- Datenbindung und Windows Forms
- Vorgehensweise: Erstellen eines einfachen gebundenen Steuerelements in einem Windows Form
- Binden von Windows Forms-Steuerelementen an Daten in Visual Studio
- Daten wieder in der Datenbank speichern
- Aktualisieren von Daten mithilfe eines TableAdapter
- Zwischenspeichern von Daten
- Daten in Office-Lösungen