Поделиться через


Пошаговое руководство. Простая привязка данных в проекте уровня приложения

В проектах уровня приложения можно привязывать данные к элементам управления ведущего приложения и элементам управления Windows Forms.В этом пошаговом руководстве демонстрируется добавление элементов управления в документ Microsoft Office Word и привязка элементов управления к данным во время выполнения.

Применение. Сведения этого раздела применяются к проектам уровня приложения для Word 2013 и Word 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.

В данном пошаговом руководстве рассмотрены следующие задачи:

  • Добавление объекта ContentControl в документ во время выполнения.

  • Создание BindingSource, соединяющего элемент управления с экземпляром набора данных.

  • Предоставление пользователю возможности пролистывать записи и просматривать их в элементе управления.

ПримечаниеПримечание

На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Обязательные компоненты

Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.

-

Выпуск Visual Studio 2012, включающий инструменты разработчика Microsoft Office. Дополнительные сведения см. в разделе [Настройка компьютера для разработки решений Office](bb398242\(v=vs.110\).md).

Создание нового проекта

Для начала следует создать проект надстройки Word.

Создание нового проекта

  1. Создайте проект надстройки Word с именем Заполнение документов данными из базы данных в Visual Basic или C#.

    Дополнительные сведения см. в разделе Практическое руководство. Создание проектов Office в Visual Studio.

    Visual Studio откроет файл ThisAddIn.vb или ThisAddIn.cs и добавит проект "Заполнение документов данными из базы данных" в обозреватель решений.

  2. Если на которую нацелен проект .NET Framework 4 или .NET Framework 4.5, добавьте ссылку на сборку Microsoft.Office.Tools.Word.v4.0.Utilities.dll.Эта ссылка необходима для программного добавления элементов управления Windows Forms в документ на последующих этапах.

Создание источника данных

Чтобы добавить типизированный набор данных в проект, следует использовать окно Источники данных.

Добавление типизированного набора данных в проект

  1. Если окно Источники данных не отображается, его отображение в строке меню, выбирая Вид, Другие окна, Источники данных.

  2. Выберите Добавить новый источник данных, чтобы запустить Мастер настройки источника данных.

  3. Щелкните База данных и нажмите кнопку Далее.

  4. Если подключение к базе данных AdventureWorksLT существует, выберите его и нажмите кнопку Далее.

    В противном случае нажмите кнопку Новое подключение и с помощью диалогового окна Добавить подключение создайте новое подключение.Дополнительные сведения см. в разделе Практическое руководство. Подключение к данным в базе данных.

  5. На странице Сохранить строку подключения в файл конфигурации приложения нажмите кнопку Далее.

  6. На странице Выбор объектов базы данных разверните узел Таблицы и выберите Customer (SalesLT).

  7. Нажмите кнопку Готово.

    Файл AdventureWorksLTDataSet.xsd добавлен в обозреватель решений.Этот файл определяет следующие элементы:

    • Типизированный набор данных с именем AdventureWorksLTDataSet.Этот набор данных представляет содержимое таблицы Customer (SalesLT) в базе данных AdventureWorksLT.

    • Адаптер таблиц TableAdapter с именем CustomerTableAdapter.Этот адаптер TableAdapter может использоваться для чтения и записи данных в AdventureWorksLTDataSet.Дополнительные сведения см. в разделе Общие сведения об адаптере таблиц.

    Далее в пошаговом руководстве используются оба эти объекта.

Создание элементов управления и их привязка к данным

Интерфейс для просмотра записей базы данных в данном пошаговом руководстве является очень простым и создается внутри документа.Объект единовременно отображает ContentControl одну запись базы данных и два элемента управления Button, которые позволяют пролистывать записи назад и вперед.Элемент управления содержимым использует BindingSource для связи с базой данных.

Дополнительные сведения о привязке элементов управления к данным см. в разделе Привязка данных к элементам управления в решениях Office.

Создание интерфейса в документе

  1. В классе ThisAddIn объявите следующие элементы управления для отображения и прокрутки таблицы Customer базы данных AdventureWorksLTDataSet.

    Private adventureWorksDataSet As AdventureWorksLTDataSet
    Private customerTableAdapter As AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter
    Private customerBindingSource As System.Windows.Forms.BindingSource
    Private customerContentControl As Microsoft.Office.Tools.Word.RichTextContentControl
    Private WithEvents button1 As Microsoft.Office.Tools.Word.Controls.Button
    Private WithEvents button2 As Microsoft.Office.Tools.Word.Controls.Button
    
    private AdventureWorksLTDataSet adventureWorksDataSet;
    private AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter customerTableAdapter;
    private System.Windows.Forms.BindingSource customerBindingSource;
    private Microsoft.Office.Tools.Word.RichTextContentControl customerContentControl;
    private Microsoft.Office.Tools.Word.Controls.Button button1;
    private Microsoft.Office.Tools.Word.Controls.Button button2;
    
  2. В метод ThisAddIn_Startup добавьте следующий код для инициализации набора данных, заполнении набора данных сведениями из базы данных AdventureWorksLTDataSet.

    Me.adventureWorksDataSet = New AdventureWorksLTDataSet()
    Me.customerTableAdapter = New AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter()
    Me.customerTableAdapter.Fill(Me.adventureWorksDataSet.Customer)
    Me.customerBindingSource = New System.Windows.Forms.BindingSource()
    
    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.customerTableAdapter = new AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter();
    this.customerTableAdapter.Fill(this.adventureWorksDataSet.Customer);
    this.customerBindingSource = new System.Windows.Forms.BindingSource();
    
  3. Добавьте следующий код в метод ThisAddIn_Startup.Этот код создает ведущий элемент, расширяющий документ.Дополнительные сведения см. в разделе Расширение документов Word и книг Excel в надстройках уровня приложения во время выполнения.

            Dim currentDocument As Word.Document = Me.Application.ActiveDocument
    
            Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument)
    
    
                Word.Document currentDocument = this.Application.ActiveDocument;
    
                Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
    
  4. Определите несколько диапазонов в начале документа.Эти диапазоны указывают место вставки текста и размещения элементов управления.

    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    extendedDocument.Paragraphs(1).Range.InsertParagraphBefore()
    extendedDocument.Paragraphs(1).Range.Text = "The companies listed in the AdventureWorksLT database:   "
    extendedDocument.Paragraphs(2).Range.Text = "  "
    
    Dim range1 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.First
    Dim range2 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.Last
    Dim range3 As Word.Range = extendedDocument.Paragraphs(1).Range.Characters.Last
    
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.Text = 
        "The companies listed in the AdventureWorksLT database:   \n";
    extendedDocument.Paragraphs[2].Range.Text = "  "; 
    
    Word.Range range1 = extendedDocument.Paragraphs[2].Range.Characters.First;
    Word.Range range2 = extendedDocument.Paragraphs[2].Range.Characters.Last;
    Word.Range range3 = extendedDocument.Paragraphs[1].Range.Characters.Last;
    
  5. Добавьте элементы управления интерфейса для диапазонов, заданных на предыдущем этапе.

    Me.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1")
    Me.button1.Text = "Previous"
    Me.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2")
    Me.button2.Text = "Next"
    
    Me.customerContentControl = extendedDocument.Controls.AddRichTextContentControl(range3, _
        "richTextContentControl1")
    
    this.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1");
    this.button1.Text = "Previous";
    this.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2");
    this.button2.Text = "Next";
    
    this.customerContentControl = extendedDocument.Controls.AddRichTextContentControl(
        range3, "richTextContentControl1");
    
  6. Свяжите элемент управления содержимым AdventureWorksLTDataSet, используя BindingSource.При использовании языка C# также необходимо добавить два обработчика событий для элементов управления Button.

    Me.customerBindingSource.DataSource = Me.adventureWorksDataSet.Customer
    Me.customerContentControl.DataBindings.Add("Text", Me.customerBindingSource, _
        "CompanyName", True, Me.customerContentControl.DataBindings.DefaultDataSourceUpdateMode)
    
    this.customerBindingSource.DataSource = this.adventureWorksDataSet.Customer;
    this.customerContentControl.DataBindings.Add("Text", this.customerBindingSource, 
        "CompanyName", true, this.customerContentControl.DataBindings.DefaultDataSourceUpdateMode);
    
    this.button1.Click += new EventHandler(button1_Click);
    this.button2.Click += new EventHandler(button2_Click);
    
  7. Добавьте следующий код для перемещения по записям базы данных.

    Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button1.Click
        Me.customerBindingSource.MovePrevious()
    End Sub
    
    Private Sub button2_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button2.Click
        Me.customerBindingSource.MoveNext()
    End Sub
    
    void button1_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MovePrevious();
    }
    
    void button2_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MoveNext();
    }
    

Проверка надстройки

После запуска Word элемент управления содержимым отображает данные из набора данных AdventureWorksLTDataSet.Просмотрите записи базы данных, нажимая кнопки Далее и Назад.

Проверка надстройки

  1. Нажмите клавишу F5.

    Создается элемент управления содержимым с именем customerContentControl и заполняется данными.Одновременно в проект добавляется объект набора данных adventureWorksLTDataSet и BindingSource с именем customerBindingSource.ContentControl привязан к BindingSource, который, в свою очередь, связан с экземпляром набора данных.

  2. Просмотрите записи базы данных, нажимая кнопки Далее и Назад.

См. также

Задачи

Практическое руководство. Заполнение листов данными из базы данных

Практическое руководство. Заполнение документов данными из базы данных

Практическое руководство. Заполнение документов данными из служб

Практическое руководство. Заполнение документов данными из объектов

Практическое руководство. Прокрутка записей базы данных на листе

Практическое руководство. Обновление источника данных с помощью данных из элемента управления ведущего приложения

Пошаговое руководство. Простая привязка данных в проекте уровня документа

Пошаговое руководство. Сложная привязка данных в проекте уровня документа

Практическое руководство. Заполнение документов данными из объектов

Практическое руководство. Обновление источника данных с помощью данных из элемента управления ведущего приложения

Ссылки

Общие сведения о компоненте BindingSource

Основные понятия

Общие сведения об использовании файлов локальной базы данных в решениях для Office

Общие сведения об источниках данных

Привязка элементов управления Windows Forms к данным в Visual Studio

Общие сведения об использовании файлов локальной базы данных в решениях для Office

Подключение к данным в приложениях Windows Forms

Другие ресурсы

Данные в решениях Office

Привязка данных к элементам управления в решениях Office