Aracılığıyla paylaş


İzlenecek yol: Uygulama düzeyinde projesinde hizmetinden veri bağlama

Uygulama düzeyi projelerinde veriyi konak kontrollerine bağlayabilirsiniz.Bu izlenecek yolda, Microsoft Office Word belgesine denetimlerin nasıl ekleneceği, çalışma zamanında denetimlerin MSDN Content Service'ten gelen veriye nasıl bağlanacağı ve olaylara nasıl yanıt vereceği gösterilmektedir.

İçin geçerlidir: bu konudaki bilgiler Word 2010 uygulamalarının uygulama düzeyi projelerine yöneliktir.Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

Bu örneklerde aşağıdaki görevler gösterilir:

[!NOT]

Bilgisayarınızda, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazılarının adı veya konumu farklı gösterilebilir. Bu öğeleri bilgisayarınızdaki Visual Studio sürümü ve kullandığınız ayarlar belirler. Daha fazla bilgi için bkz: Visual Studio ayarları.

Önkoşullar

Bu örneği tamamlamak için aşağıdaki bileşenler gerekmektedir:

-

Microsoft Office geliştirici araçlarını içeren bir Visual Studio 2012 sürümü. Daha fazla bilgi için bkz: [Office Çözümeri Geliştirmek İçin Bilgisayarı Yapılandırma](bb398242\(v=vs.110\).md).
  • Word 2013 veya Word 2010. 

Yeni Bir Proje Oluşturma

İlk adım Word eklenti projesi oluşturmaktır.

Yeni bir proje oluşturmak için

Web Hizmeti Ekleme

Bu izlenecek yol için, MTPS Content Service adında Web hizmeti kullanın.Bu Web hizmeti, XML dizesi veya düz metin biçimindeki belirlenmiş MSDN makalesinden bilgi döner.Bir sonraki adımda içerik denetimindeki bilginin nasıl görüntüleceği gösterilir.

MTPS Content Service'i projeye eklemek

  1. Data menüsünden Yeni Veri Kaynağı Ekle 'yi tıklayın.

  2. Veri Kaynağı Yapılandırma Sihirbazı'nda, Hizmet'i tıklatın ve sonra İleri'yi tıklatın.

  3. Aşağıdaki URL'i Adres alanına yazın.

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

  4. Git'i tıklatın.

  5. İsim Uzayı alanına, ContentService yazın ve Tamam'ı tıklatın.

  6. Başvuru Ekleme Sihirbazı iletişim kutusunda Bitiş'i tıklatın.

İçerik Denetimi Ekleme ve Çalışma Zamanında Veriye Bağlama

Ugulama düzeyi projesinde, denetimleri çalışma zamanında ekleyip bağlayabilirsiniz. Bu izlenecek yok için, kullanıcı denetimin içini tıklattığında Web hizmetinden veri almak için, içerik denetimini yapılandırın.

İçerik denetimi eklemek ve çalışma zamanında veriya bağlamak

  1. ThisAddIn sınıfında, MTPS Content Service'i, içerik denetimi ve veri bağlama için değişkenleri tanımlayın.

    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. Aşağıdaki yöntemi ThisAddIn sınıfına ekleyin.Bu yöntemde içerik denetimi etkin belgenin en başında oluşturulur.

    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. Aşağıdaki yöntemi ThisAddIn sınıfına ekleyin.Bu yöntemde, istek oluşturmak ve isteği Web hizmetine göndermek için gerekli olan nesneler oluşturulur.

    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. Kullanıcı içerik denetiminin içini tıklattığında ve veriyi içerik denetimine bağladığında, içerik denetimi hakkındaki MSDN Library belgesini almak için olay işleyicisi oluşturun.

    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. ThisAddIn_Startup yönteminden AddRichTextControlAtRange ve InitializeServiceObjects yöntemlerini çağırın.C# programcıları için, olay işleyici ekleyin.

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

Eklentiyi Test Etme

Word'ü açtığınızda, RichTextContentControl denetimi görünür.Denetim içindeki metin, denetimin içini tıklattığınızda değişir.

Eklentiyi sınamak için

  1. F5'e basın.

  2. İçerik denetiminin içini tıklatın.

    MTPS Content Service'ten bilgi indirilir ve içerik denetiminin içinde görünür.

Ayrıca bkz.

Diğer Kaynaklar

Office Çözümlerinde Veriyi Denetime Bağlama