Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Exemplarische Vorgehensweise: Einfache Datenbindung in einem VSTO-Add-In-Projek

 

Sie können in VSTO-Add-In-Projekten Daten an Hoststeuerelemente und Windows Forms-Steuerelemente binden. In dieser exemplarischen Vorgehensweise wird veranschaulicht, wie einem Microsoft Office Word-Dokument zur Laufzeit Steuerelemente hinzugefügt und diese Steuerelemente an Daten gebunden werden.

Betrifft: Die Informationen in diesem Thema betreffen VSTO-Add-In-Projekte für Word. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.

In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:

  • Hinzufügen eines ContentControl-Steuerelements zu einem Dokument zur Laufzeit

  • Erstellen eines BindingSource-Objekts, das das Steuerelement mit einer Instanz eines Datasets verbindet

  • Ermöglichen, dass Benutzer durch die Datensätze scrollen und diese im Steuerelement anzeigen können

System_CAPS_noteHinweis

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren von Visual Studio-IDE.

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

Der erste Schritt besteht im Erstellen eines VSTO-Add-In-Projekts für Word.

So erstellen Sie ein neues Projekt

  1. Erstellen Sie mit Visual Basic oder C# ein Word-VSTO-Add-In-Projekt, das den Namen Füllen von Dokumenten aus einer Datenbank hat.

    Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Office-Projekten in Visual Studio.

    Visual Studio öffnet die Datei „ThisAddIn.vb“ oder „ThisAddIn.cs“ und fügt dem Projektmappen-Explorer das Projekt Füllen von Dokumenten aus einer Datenbank hinzu.

  2. Wenn das Projekt für .NET Framework 4 oder .NET Framework 4.5 vorgesehen ist, fügen Sie einen Verweis auf die Assembly „Microsoft.Office.Tools.Word.v4.0.Utilities.dll“ hinzu. Dieser Verweis ist erforderlich, um später in dieser exemplarischen Vorgehensweise dem Dokument programmgesteuert Windows Forms-Steuerelemente hinzuzufügen.

Verwenden Sie das Fenster Datenquellen, um dem Projekt ein typisiertes Dataset hinzuzufügen.

So fügen Sie dem Projekt ein typisiertes Dataset hinzu

  1. Wenn das Fenster Datenquellen nicht sichtbar ist, zeigen Sie es an, indem Sie in der Menüleiste Ansicht, Weitere Fenster und Datenquellen wählen.

  2. Wählen Sie Neue Datenquelle hinzufügen, um den Assistenten zum Konfigurieren von Datenquellen zu starten.

  3. Click

  4. Wenn eine Verbindung mit der AdventureWorksLT-Datenbank vorhanden ist, wählen Sie diese Verbindung aus, und klicken Sie auf Weiter.

    Klicken Sie andernfalls auf Neue Verbindung, und erstellen Sie die neue Verbindung im Dialogfeld Verbindung hinzufügen. Weitere Informationen finden Sie unter Gewusst wie: Herstellen einer Verbindung zu Daten in einer Datenbank.

  5. Klicken Sie auf der Seite Verbindungszeichenfolge in der Anwendungskonfigurationsdatei speichern auf Weiter.

  6. Erweitern Sie auf der Seite Datenbankobjekte auswählen den Knoten Tabellen, und wählen Sie Customer (SalesLT) aus.

  7. Click

    Die Datei „AdventureWorksLTDataSet.xsd“ wird dem Projektmappen-Explorer hinzugefügt. In dieser Datei sind die folgenden Elemente definiert:

    • Ein typisiertes Dataset namens AdventureWorksLTDataSet. Dieses Dataset entspricht dem Inhalt der Customer (SalesLT)-Tabelle in der AdventureWorksLT-Datenbank.

    • Eine TableAdapter mit dem Namen CustomerTableAdapter. Dieser TableAdapter kann zum Lesen von Daten aus und zum Schreiben von Daten in AdventureWorksLTDataSet verwendet werden. Weitere Informationen finden Sie unter Übersicht über TableAdapters.

    Zu einem späteren Zeitpunkt in dieser exemplarischen Vorgehensweise verwenden Sie beide Objekte.

Die Benutzeroberfläche zum Anzeigen von Datensätzen hat in dieser exemplarischen Vorgehensweise einen sehr begrenzten Umfang, und sie wird direkt im Dokument erstellt. In einem ContentControl-Steuerelement wird jeweils ein einzelner Datensatz angezeigt, und mit zwei Button-Steuerelementen können Sie nach oben und unten durch die Datensätze scrollen. Im Inhaltssteuerelement wird ein BindingSource-Objekt verwendet, um eine Verbindung mit der Datenbank herzustellen.

Weitere Informationen zum Binden von Steuerelementen an Daten finden Sie unter Binden von Daten an Steuerelemente in Office-Projektmappen.

So erstellen Sie die Benutzeroberfläche im Dokument

  1. Deklarieren Sie in der ThisAddIn-Klasse die folgenden Steuerelemente, um die Customer-Tabelle der AdventureWorksLTDataSet-Datenbank anzuzeigen und sie durchlaufen zu können.

    private AdventureWorksLTDataSet adventureWorksDataSet;
    private AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter customerTableAdapter;
    private System.Windows.Forms.BindingSource customerBindingSource;
    private Microsoft.Office.Tools.Word.RichTextContentControl customerContentControl;
    private Microsoft.Office.Tools.Word.Controls.Button button1;
    private Microsoft.Office.Tools.Word.Controls.Button button2;
    
  2. Fügen Sie der ThisAddIn_Startup-Methode den folgenden Code hinzu, um das Dataset zu initialisieren und es mit Daten aus der AdventureWorksLTDataSet-Datenbank zu füllen.

    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.customerTableAdapter = new AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter();
    this.customerTableAdapter.Fill(this.adventureWorksDataSet.Customer);
    this.customerBindingSource = new System.Windows.Forms.BindingSource();
    
  3. Fügen Sie der ThisAddIn_Startup-Methode folgenden Code hinzu. Dadurch wird ein Hostelement generiert, das das Dokument erweitert. Weitere Informationen finden Sie unter Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in VSTO-Add-Ins zur Laufzeit.

    Word.Document currentDocument = this.Application.ActiveDocument;
    
    Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
    
  4. Definieren Sie am Anfang des Dokuments mehrere Bereiche. Diese Bereiche geben an, wo Text eingefügt und die Steuerelemente positioniert werden sollen.

    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.Text = 
        "The companies listed in the AdventureWorksLT database:   \n";
    extendedDocument.Paragraphs[2].Range.Text = "  "; 
    
    Word.Range range1 = extendedDocument.Paragraphs[2].Range.Characters.First;
    Word.Range range2 = extendedDocument.Paragraphs[2].Range.Characters.Last;
    Word.Range range3 = extendedDocument.Paragraphs[1].Range.Characters.Last;
    
  5. Fügen Sie den zuvor definierten Bereichen die Steuerelemente der Benutzeroberfläche hinzu.

    this.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1");
    this.button1.Text = "Previous";
    this.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2");
    this.button2.Text = "Next";
    
    this.customerContentControl = extendedDocument.Controls.AddRichTextContentControl(
        range3, "richTextContentControl1");
    
  6. Binden Sie das Inhaltssteuerelement an AdventureWorksLTDataSet, indem Sie das BindingSource-Objekt verwenden. C#-Entwickler müssen zwei Ereignishandler für die Button-Steuerelemente hinzufügen.

    this.customerBindingSource.DataSource = this.adventureWorksDataSet.Customer;
    this.customerContentControl.DataBindings.Add("Text", this.customerBindingSource, 
        "CompanyName", true, this.customerContentControl.DataBindings.DefaultDataSourceUpdateMode);
    
    this.button1.Click += new EventHandler(button1_Click);
    this.button2.Click += new EventHandler(button2_Click);
    
  7. Fügen Sie den folgenden Code hinzu, damit durch die Datenbankdatensätze navigiert werden kann.

    void button1_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MovePrevious();
    }
    
    void button2_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MoveNext();
    }
    

Wenn Sie Word öffnen, werden im Inhaltssteuerelement Daten aus dem AdventureWorksLTDataSet-Dataset angezeigt. Durchlaufen Sie die Datenbankdatensätze, indem Sie auf die Schaltflächen Next und Previous klicken.

So testen Sie das VSTO-Add-In

  1. Drücken Sie F5.

    Das Inhaltssteuerelement customerContentControl wird erstellt und mit Daten gefüllt. Gleichzeitig werden dem Projekt ein Datasetobjekt namens adventureWorksLTDataSet und ein BindingSource-Objekt namens customerBindingSource hinzugefügt. Das ContentControl-Steuerelement ist an das BindingSource-Objekt gebunden, das wiederum an das Datasetobjekt gebunden ist.

  2. Klicken Sie auf die Schaltflächen Next und Previous, um die Datenbankdatensätze zu durchlaufen.

Anzeigen: