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: Binden an Daten aus einem Dienst in einem VSTO-Add-In-Projekt

 

Sie können Daten in VSTO-Add-In-Projekten an Hoststeuerelemente binden. In dieser exemplarischen Vorgehensweise wird veranschaulicht, wie Steuerelemente zu einem Microsoft Office Word-Dokument hinzugefügt werden, wie die Steuerelemente an Daten gebunden werden, die aus dem MSDN Content Service abgerufen werden, und wie auf Ereignisse zur Laufzeit reagiert wird.

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

In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:

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 in Visual Basic oder C# ein Word-VSTO-Add-In-Projekt namens MTPS Content Service.

    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 das Projekt dem Projektmappen-Explorer hinzu.

Für diese exemplarische Vorgehensweise verwenden Sie einen Webdienst, der den Namen „MTPS Content Service“ hat. Dieser Webdienst gibt Informationen aus einem angegebenen MSDN-Artikel in Form einer XML-Zeichenfolge oder als Nur-Text zurück. In einem späteren Schritt wird gezeigt, wie die zurückgegebenen Informationen in einem Inhaltssteuerelement angezeigt werden.

So fügen Sie dem Projekt den „MTPS Content Service“ hinzu

  1. Klicken Sie im Menü Daten auf Neue Datenquelle hinzufügen.

  2. Klicken Sie im Assistent zum Konfigurieren von Datenquellen auf Dienst und dann auf Weiter.

  3. Geben Sie die folgende URL in das Feld Adresse ein:

    http://services.msdn.microsoft.com/ContentServices/ContentService.asmx

  4. Klicken Sie auf Go.

  5. Geben Sie in das Feld Namespace die Zeichenfolge ContentService ein, und klicken Sie auf OK.

  6. Klicken Sie im Dialogfeld Assistent zum Hinzufügen von Verweisen auf Fertig stellen.

In VSTO-Add-In-Projekten nehmen Sie das Hinzufügen und Binden von Steuerelementen zur Laufzeit vor. In dieser exemplarischen Vorgehensweise konfigurieren Sie das Inhaltssteuerelement so, dass es Daten aus dem Webdienst abruft, wenn ein Benutzer auf das Steuerelement klickt.

So fügen Sie ein Inhaltssteuerelement hinzu und binden es an Daten

  1. Deklarieren Sie in der ThisAddIn-Klasse die Variablen für „MTPS Content Service“, das Inhaltssteuerelement und die Datenbindung.

    private ContentService.getContentRequest request;
    private ContentService.ContentServicePortTypeClient proxy;
    private ContentService.requestedDocument[] document;
    private ContentService.getContentResponse response;
    private ContentService.appId appId;
    private Microsoft.Office.Tools.Word.RichTextContentControl richTextContentControl;
    private System.ComponentModel.Container components;
    private System.Windows.Forms.BindingSource primaryDocumentsBindingSource;
    
  2. Fügen Sie der ThisAddIn-Klasse die folgende Methode hinzu. Diese Methode erstellt ein Inhaltssteuerelement am Anfang des aktiven Dokuments.

    private void AddRichTextControlAtRange()
    {
        Word.Document currentDocument = this.Application.ActiveDocument;
        currentDocument.Paragraphs[1].Range.InsertParagraphBefore();
    
        Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
        richTextContentControl = extendedDocument.Controls.AddRichTextContentControl(
            currentDocument.Paragraphs[1].Range, "richTextContentControl");
        richTextContentControl.PlaceholderText =
            "Click here to download MSDN Library information about content controls.";
    }
    
  3. Fügen Sie der ThisAddIn-Klasse die folgende Methode hinzu. Diese Methode initialisiert die Objekte, die zum Erstellen und Senden einer Anforderung an den Webdienst erforderlich sind.

    private void InitializeServiceObjects()
    {
        request = new ContentService.getContentRequest();
        proxy = new ContentService.ContentServicePortTypeClient();
        document = new ContentService.requestedDocument[1];
        response = new ContentService.getContentResponse();
        appId = new ContentService.appId();
        components = new System.ComponentModel.Container();
        primaryDocumentsBindingSource = new System.Windows.Forms.BindingSource(this.components);
    }
    
  4. Erstellen Sie einen Ereignishandler, um das MSDN Library-Dokument über Inhaltssteuerelemente abzurufen, wenn ein Benutzer auf das Inhaltssteuerelement klickt, und die Daten an das Inhaltssteuerelement zu binden.

    void richTextContentControl_Entering(object sender, ContentControlEnteringEventArgs e)
    {
        document[0] = new ContentService.requestedDocument();
        document[0].type = ContentService.documentTypes.primary;
        document[0].selector = "Mtps.Xhtml";
    
        request.contentIdentifier = "ed59e522-dd6e-4c82-8d49-f5dbcfcc950d";
        request.locale = "en-us";
        request.version = "VS.90";
        request.requestedDocuments = document;
    
        response = proxy.GetContent(appId, request);
        primaryDocumentsBindingSource.DataSource =
            response.primaryDocuments[0].Any.InnerText;
        richTextContentControl.DataBindings.Add("Text",
            primaryDocumentsBindingSource.DataSource, "", true,
            System.Windows.Forms.DataSourceUpdateMode.OnValidation);
    }
    
  5. Rufen Sie die Methoden AddRichTextControlAtRange und InitializeServiceObjects aus der ThisAddIn_Startup-Methode auf. C#-Programmierer müssen einen Ereignishandler hinzufügen.

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        AddRichTextControlAtRange();
        InitializeServiceObjects();
        this.richTextContentControl.Entering += richTextContentControl_Entering;
    }
    

Wenn Sie Word öffnen, wird das RichTextContentControl-Steuerelement angezeigt. Der Text im Steuerelement ändert sich, wenn Sie auf das Steuerelement klicken.

So testen Sie das VSTO-Add-In

  1. Drücken Sie F5.

  2. Klicken Sie auf das Inhaltssteuerelement.

    Es werden Informationen aus dem „MTPS Content Service“ heruntergeladen und im Inhaltssteuerelement angezeigt.

Anzeigen: