Freigeben über


Exemplarische Vorgehensweise: Einfache Datenbindung in VSTO-Add-In-Projekt

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.

Gilt für: Die Informationen in diesem Thema gelten für VSTO-Add-In-Projekte für Word. Weitere Informationen finden Sie unter features available by Office-App lication and project type.

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

Hinweis

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 der IDE.

Voraussetzungen

Zum Abschließen dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:

  • Eine Edition von Visual Studio, die die Microsoft Office-Entwicklungstools umfasst. Weitere Informationen finden Sie unter Konfigurieren eines Computers zum Entwickeln von Office-Lösungen.

  • Word 2013 oder Word 2010 .

  • Zugriff auf eine aktive Instanz von SQL Server 2005 oder SQL Server 2005 Express, an die die AdventureWorksLT -Beispieldatenbank angefügt ist. Sie können die AdventureWorksLT Datenbank aus dem GitHub-Repository für SQL Server-Beispiele herunterladen. Weitere Informationen zum Anhängen von Datenbanken finden Sie in den folgenden Themen:

Erstellen eines neuen Projekts

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 Datenbankhat.

    Weitere Informationen finden Sie unter How to: Create Office projects in Visual Studio.

    Visual Studio öffnet die Datei ThisAddIn.vb oder ThisAddIn.cs und fügt das Auffüllen von Dokumenten aus einem Datenbankprojekt zu Projektmappen-Explorer hinzu.

  2. Wenn Ihr Projekt auf .NET Framework 4 oder .NET Framework 4.5 ausgerichtet 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.

Erstellen einer Datenquelle

Verwenden 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 auf der Menüleiste "Andere Windows-Datenquellen> anzeigen">auswählen.

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

  3. Klicken Sie auf Datenbank, und klicken Sie dann auf Weiter.

  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 Hinzufügen neuer Verbindungen.

  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. Klicken Sie auf Fertig stellen.

    Die Datei AdventureWorksLTDataSet.xsd wird 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.

    • Ein TableAdapter mit dem Namen CustomerTableAdapter. Dieser TableAdapter kann zum Lesen und Schreiben von Daten in der AdventureWorksLTDataSet. Weitere Informationen finden Sie in der TableAdapter-Übersicht.

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

Erstellen von Steuerelementen und Binden von Steuerelementen an Daten

Die Schnittstelle zum Anzeigen von Datenbankdatensätzen in dieser exemplarischen Vorgehensweise ist einfach und 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-Lösungen.

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();
    }
    

Testen des Add-Ins

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.