Udostępnij za pośrednictwem


Instruktaż: Wiązanie danych z usługi w projekcie na poziomie aplikacji

Dane można powiązać z formantami hosta w poziomie aplikacji.W tym instruktażu przedstawiono sposób dodać formanty do dokumentu programu Microsoft Office Word, kontrole należy powiązać dane pobierane z usługi MSDN zawartości i reagować na zdarzenia zachodzące w czasie wykonywania.

Stosuje się do: informacje w tym temacie dotyczą projektów poziomie aplikacji dla programu Word 2010.Aby uzyskać więcej informacji, zobacz Funkcje dostępne w aplikacji pakietu Office i typ projektu.

W tym instruktażu przedstawiono następujące zadania:

[!UWAGA]

Na danym komputerze mogą być używane inne nazwy lub lokalizacje pewnych elementów interfejsu użytkownika programu Visual Studio, które są używane w poniższych instrukcjach. Używana wersja programu Visual Studio oraz jej ustawienia określają te elementy. Aby uzyskać więcej informacji, zobacz Visual Studio, ustawienia.

Wymagania wstępne

Potrzebne do przeprowadzenia tego instruktażu następujące składniki:

-

Wersja Visual Studio 2012 zawierająca narzędzia dla deweloperów pakietu Microsoft Office. Aby uzyskać więcej informacji, zobacz [Konfigurowanie komputera do opracowywania rozwiązań pakietu Office](bb398242\(v=vs.110\).md).
  • Word 2013or Word 2010. 

Tworzenie nowego projektu

Pierwszym krokiem jest utworzenie Word-w projekcie.

Aby utworzyć nowy projekt

Dodawanie usługi sieci Web

Do wykonania tej procedury należy użyć usługi sieci Web o nazwie Usługa zawartości MTPS.Ta usługa sieci Web zwraca informacje od określonego artykuł MSDN w formie ciągu XML lub zwykły tekst.Później pokazuje sposób wyświetlania informacji zwracanych w formancie zawartości.

Aby dodać usługi zawartości MTPS do projektu

  1. Na danych menu, kliknij przycisk Dodać nowe źródło danych.

  2. W Kreatora konfiguracji źródła danych, kliknij Service, a następnie kliknij przycisk Dalej.

  3. W adres w polu, wpisz następujący adres URL:

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

  4. Click Go.

  5. W nazw wpisz ContentServicei kliknij przycisk OK.

  6. W Kreatora dodawania odniesienia okno dialogowe, kliknij przycisk wykończenie.

Dodawanie formantu zawartości i powiązania danych w czasie wykonywania

W projektach na poziomie aplikacji należy dodać i wiązać formanty w czasie wykonywania.Do wykonania tej procedury należy skonfigurować formant zawartości, aby pobierać dane z usługi sieci Web, gdy użytkownik kliknie wewnątrz formantu.

Aby dodać formant zawartości i powiązany z danymi

  1. W ThisAddIn klasy, deklaruje zmienne dla usługi zawartości MTPS, formant zawartości i wiązania z danymi.

    Private request As ContentService.getContentRequest
    Private proxy As ContentService.ContentServicePortTypeClient
    Private document As ContentService.requestedDocument()
    Private response As ContentService.getContentResponse
    Private appId As ContentService.appId
    Private WithEvents richTextContentControl As Microsoft.Office.Tools.Word.RichTextContentControl
    Private components As System.ComponentModel.Container
    Private primaryDocumentsBindingSource As System.Windows.Forms.BindingSource
    
    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. Dodaj następującą metodę do ThisAddIn klasy.Ta metoda tworzy formant zawartości, na początku aktywnego dokumentu.

    Private Sub AddRichTextControlAtRange()
    
        Dim currentDocument As Word.Document = Me.Application.ActiveDocument
        currentDocument.Paragraphs(1).Range.InsertParagraphBefore()
    
    
        Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument)
    
    
        richTextContentControl = extendedDocument.Controls.AddRichTextContentControl _
            (currentDocument.Paragraphs(1).Range, "richTextControl2")
        richTextContentControl.PlaceholderText = _
            "Click here to download MSDN Library information about content controls."
    End Sub
    
    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. Dodaj następującą metodę do ThisAddIn klasy.Ta metoda inicjuje obiekty potrzebne do tworzenia i wysyłania żądania do usługi sieci Web.

    Private Sub InitializeServiceObjects()
        request = New ContentService.getContentRequest()
        proxy = New ContentService.ContentServicePortTypeClient()
        document = New ContentService.requestedDocument(0) {}
        response = New ContentService.getContentResponse()
        appId = New ContentService.appId()
        components = New System.ComponentModel.Container()
        primaryDocumentsBindingSource = New System.Windows.Forms.BindingSource(components)
    End Sub
    
    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. Utwórz program obsługi zdarzeń, aby pobrać dokument MSDN Library o zawartość formantów, gdy użytkownik kliknie wewnątrz treści kontroli i powiązać dane z formantu zawartości.

    Private Sub richTextContentControl_Entering _
        (ByVal sender As Object, ByVal e As ContentControlEnteringEventArgs) _
        Handles richTextContentControl.Entering
    
        document(0) = New ContentService.requestedDocument()
        With document(0)
            .type = ContentService.documentTypes.primary
            .selector = "Mtps.Xhtml"
        End With
    
        With request
            .contentIdentifier = "ed59e522-dd6e-4c82-8d49-f5dbcfcc950d"
            .locale = "en-us"
            .version = "VS.90"
            .requestedDocuments = document
        End With
    
        response = proxy.GetContent(appId, request)
    
        primaryDocumentsBindingSource.DataSource = _
            response.primaryDocuments(0).Any.InnerText
        richTextContentControl.DataBindings.Add("Text", _
            primaryDocumentsBindingSource.DataSource, "", True, _
            System.Windows.Forms.DataSourceUpdateMode.OnValidation)
    End Sub
    
    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. Wywołanie AddRichTextControlAtRange i InitializeServiceObjects metody z ThisAddIn_Startup metoda.Dla programistów C# należy dodać obsługę zdarzeń.

    Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
        AddRichTextControlAtRange()
        InitializeServiceObjects()
    End Sub
    
    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        AddRichTextControlAtRange();
        InitializeServiceObjects();
        this.richTextContentControl.Entering += richTextContentControl_Entering;
    }
    

Badania-dodatek

Po otwarciu programu Word, RichTextContentControl formant jest widoczny.Zmienia tekst w kontroli po kliknięciu wewnątrz niego.

Aby przetestować dodatek

  1. Press F5.

  2. Kliknij wewnątrz formantu zawartości.

    Informacje są pobierane z usługi zawartości MTPS i wyświetlane wewnątrz formantu zawartości.

Zobacz też

Inne zasoby

Wiązanie danych do formantów w rozwiązania dla pakietu Office