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


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

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

Область применения. Сведения в этом разделе относятся к проектам надстроек VSTO для Word. Дополнительные сведения см. в разделе "Функции", доступные по Приложение Office ликации и типу проекта.

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

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

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

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

Примечание.

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

Необходимые компоненты

Для выполнения этого пошагового руководства требуются следующие компоненты:

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

Первым шагом является создание проекта надстройки Word VSTO.

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

  1. Создайте проект надстройки VSTO для 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. Если окно "Источники данных" не отображается, отобразите его в строке меню, выбрав "Просмотреть>другие источники данных Windows>".

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

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

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

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

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

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

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

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

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

    • Имя TableAdapter CustomerTableAdapter. Этот tableAdapter можно использовать для чтения и записи данных в объекте AdventureWorksLTDataSet. Дополнительные сведения см. в обзоре TableAdapter.

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

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

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

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

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

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

    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 .

    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 в надстройках VSTO во время выполнения.

    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:   \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. Добавьте элементы управления интерфейса в ранее определенные диапазоны.

    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 .

    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. Добавьте следующий код для перемещения по записям базы данных.

    void button1_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MovePrevious();
    }
    
    void button2_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MoveNext();
    }
    

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

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

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

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

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

  2. Нажимайте кнопки Далее и Назад , чтобы прокрутить записи базы данных.