Partilhar via


Passo a passo: Ligação a dados de um serviço em um projeto de nível de aplicativo

Você pode associar dados a controles host em projetos de aplicativo.Essa explicação passo a passo demonstra como adicionar controles a um documento Microsoft Office Word, associar controles aos dados recuperados do serviço de conteúdo do MSDN, e em tempo de execução responder a eventos.

Se aplica: as informações contidas em este tópico aplica projetos no nível para a palavra 2010.Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Essa explicação passo a passo mostra as seguintes tarefas:

ObservaçãoObservação

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações de Visual Studio.

Pré-requisitos

Para completar este passo-a-passo, são necessários os seguintes componentes:

-

Uma edição do Visual Studio 2012 que inclui o Microsoft Office Developer Tools. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.110\).md).
  • Word 2013 ou Word 2010. 

Criando um novo projeto

A primeira etapa é criar um projeto do suplemento a palavra.

para criar um novo projeto

  • Crie um projeto do suplemento a palavra com o serviço de conteúdo de nome MTPS usando, Visual Basic ou C#.

    Para obter mais informações, consulte Como: criar projetos do Office em Visual Studio.

    O Visual Studio abre o arquivo de ThisAddIn.vb ou de ThisAddIn.cs e adiciona o projeto a Gerenciador de Soluções.

Adicionando um serviço da Web

Para essa explicação passo a passo, use um serviço Web chamado conteúdo do serviço MTPS.Esse serviço Web retorna informações de um artigo MSDN especificado na forma de cadeia de caracteres ou um texto sem formatação XML.Uma etapa posterior mostra como exibir informações retornado em um controle de conteúdo.

Para adicionar o conteúdo de serviço MTPS ao projeto

  1. No menu Data, clique em Add New Data Source.

  2. Em Assistente para Configuração de Fonte de Dados, clique em Serviço, e clique em Avançar.

  3. Em o campo de Endereço , digite a seguinte URL:

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

  4. Clique em Go.

  5. Em o campo de Namespace , digite ContentService, e clique OK.

  6. Em a caixa de diálogo de Adicione o assistente de referência , clique Concluir.

Adicionando um controle e uma associação de conteúdo a dados em tempo de execução

Em projetos de aplicativo, você adiciona e associa os controles em tempo de execução.Para essa explicação passo a passo, configurar o controle de conteúdo para recuperar dados de serviço Web quando um usuário clica no controle.

Para adicionar um controle de conteúdo e associar dados

  1. Em a classe de ThisAddIn , declarar variáveis para o serviço MTPS de conteúdo, o controle de conteúdo, e a associação de dados.

    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. Adicione o seguinte método à classe de ThisAddIn .Este método cria um controle de conteúdo no início do documento ativo.

    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. Adicione o seguinte método à classe de ThisAddIn .Este método inicializa os objetos necessários para criar e enviar uma solicitação para o serviço 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. Crie um manipulador de eventos para recuperar o documento da Biblioteca MSDN sobre controles de conteúdo quando um usuário clica em para dentro do controle de conteúdo e associar os dados ao controle de conteúdo.

    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. Chamar os métodos de AddRichTextControlAtRange e de InitializeServiceObjects do método de ThisAddIn_Startup .Para desenvolvedores de C#, adicione um manipulador de eventos.

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

testando o suplemento

Quando você abre palavra, o controle de RichTextContentControl aparece.O texto no controle altera quando você clica em ela.

para testar o suplemento

  1. Pressione F5.

  2. Clique dentro do controle de conteúdo.

    A informação é baixada de serviço MTPS de conteúdo e exibido dentro do controle de conteúdo.

Consulte também

Outros recursos

A ligação de dados a controles em soluções do Office