Demonstra Passo a passo: Vinculação de dados de um serviço em um projeto de nível de aplicativo
Você pode vincular dados a controles de host em projetos de nível de aplicativo. Esta explicação passo a passo demonstra como adicionar controles a um documento do Word de Microsoft Office, vincular controles a dados recuperados do serviço de conteúdo do MSDN e responder a eventos em tempo de execução.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de aplicativo para Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
This walkthrough illustrates the following tasks:
Adicionando um RichTextContentControl o controle a um documento no tempo de execução.
Vinculação de RichTextContentControl o controle de dados de um serviço da Web.
Responder para o Entering evento de um RichTextContentControl de controle.
Observaçã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 do Visual Studio. |
Pré-requisitos
You need the following components to complete this walkthrough:
-
Uma edição do Visual Studio 2010 que inclua as ferramentas de desenvolvedor do Microsoft Office. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.100\).md).
- Microsoft Office Word 2007 ou Word 2010.
Creating a New Project
A primeira etapa é criar um projeto de suplemento do Word.
Para criar um novo projeto.
Crie um projeto de suplemento do Word com o nome do serviço de conteúdo de MTPS, usando o Visual Basic ou C#.
For more information, see Como: Criar projetos do Office em Visual Studio.
Abre a Visual Studio a ThisAddIn.vb ou ThisAddIn.cs de arquivo e adiciona o projeto Solution Explorer.
Adicionando um serviço Web
Para esta explicação, use um serviço Web denominado serviço de MTPS de conteúdo. Esse Web service retorna informações de um artigo do MSDN especificado na forma de uma seqüência de caracteres XML ou texto sem formatação. Uma etapa posterior mostra como exibir as informações retornadas em um controle de conteúdo.
Para adicionar o serviço de MTPS de conteúdo para o projeto
On the Data menu, click Add New Data Source.
No Data Source Configuration Wizard, clique em Servicee em seguida, clique em próximo.
No endereço , digite a seguinte URL:
http://Services.msdn.microsoft.com/ContentServices/ContentService.asmx
Click Go.
No Namespace , digite ContentServicee clique em OK.
No Assistente para adicionar de referência caixa de diálogo, clique em Concluir.
Adicionando um controle de conteúdo e a vinculação de dados em tempo de execução
Em projetos de nível de aplicativo, você pode adicionar e vincula controles em tempo de execução. Para esta explicação, configure o controle de conteúdo para recuperar dados do serviço da Web quando um usuário clica dentro do controle.
Para adicionar um controle content e vincular a dados
No ThisAddIn classe, declare as variáveis para o serviço de MTPS de conteúdo, o controle de conteúdo e a vinculaçã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;
Adicione o seguinte método para o ThisAddIn classe. Esse 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() ' Use the following line of code in projects that target the .NET Framework 4. Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument) ' In projects that target the .NET Framework 3.5, use the following line of code instead. ' Dim extendedDocument As Document = currentDocument.GetVstoObject() 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(); // Use the following line of code in projects that target the .NET Framework 4. Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument); // In projects that target the .NET Framework 3.5, use the following line of code instead. // Document extendedDocument = currentDocument.GetVstoObject(); richTextContentControl = extendedDocument.Controls.AddRichTextContentControl( currentDocument.Paragraphs[1].Range, "richTextContentControl"); richTextContentControl.PlaceholderText = "Click here to download MSDN Library information about content controls."; }
Adicione o seguinte método para o ThisAddIn classe. Esse método inicializa os objetos necessários para criar e enviar uma solicitação de serviço da 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); }
Criar um manipulador de eventos para recuperar o documento Biblioteca MSDN sobre controles de conteúdo quando um usuário clica dentro do controle de conteúdo e vincular os dados para o 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); }
Chamar o AddRichTextControlAtRange e InitializeServiceObjects métodos a partir de ThisAddIn_Startup método. Para C# programadores, 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ê abrir o Word, o RichTextContentControl controle aparece. O texto do controle muda quando você clica dentro dele.
Para testar o suplemento
Press F5.
Clique dentro do controle de conteúdo.
Informações baixadas do serviço de conteúdo MTPS e exibidas dentro do controle de conteúdo.