Привязка данных к элементам управления
Обновлен: Июль 2008
Применение |
---|
Сведения, приведенные в данном разделе, относятся только к указанным проектам Visual Studio Tools for Office и версиям Microsoft Office. Проекты уровня документа
Проекты уровня приложения
Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов. |
Можно осуществлять привязку элементов управления Windows Forms и элементов управления ведущего приложения в документе Microsoft Office Word или на листе Microsoft Office Excel к источнику данных. Таким образом элементы управления будут автоматически отображать данные.
Начиная с Visual Studio 2008 с пакетом обновления 1 (SP1), можно привязать данные к элементам управления в проектах уровня приложения. Если SP1 не установлен, можно привязать данные к элементам управления только в проектах уровня документа.
Элементы управления ведущего приложения расширяют объекты, которые находятся в объектной модели Word и Excel, например, элементы управления содержимым в Word и элементы управления именованного диапазона в Excel. Дополнительные сведения см. в разделе Общие сведения о ведущих элементах и элементах управления ведущего приложения.
Windows Forms и элементы управления ведущего приложения используют модель привязки данных Windows Forms, которая поддерживает как простую привязку данных, так и сложную привязку данных к источникам данных, например, к наборам данных и к таблицам данных. Дополнительные сведения о модели привязки данных в Windows Forms см. в разделе Связывание данных и Windows Forms.
Простая привязка данных
Простая привязка данных существует, если свойство элемента управления привязано к простому элементу данных, например к значению в таблице данных. Например, элемент управления NamedRange имеет свойство Value2, которое может быть привязано к полю в наборе данных. Если поле в наборе данных изменяется, значение в именованном диапазоне также изменяется. Все элементы управления ведущего приложения, за исключением элемента управления XMLNodes, поддерживают простую привязку данных. Элемент управления XMLNodes является коллекцией, поэтому он не поддерживает привязку данных.
Для выполнения простой привязки данных к элементу управления ведущего приложения добавьте в свойство DataBindings элемента управления объект Binding. Объект Binding предоставляет простую привязку между значением свойства элемента управления и значением элемента данных.
В следующем примере показано выполнение привязки свойства Value2 к элементу данных в проекте уровня документа. Этот пример кода является частью более крупного примера для свойства DataBindings.
Dim binding1 As New Binding("Value2", ds, "Customers.Names", True)
namedRange1.DataBindings.Add(binding1)
Binding binding1 = new Binding("Value2", ds, "Customers.Names", true);
namedRange1.DataBindings.Add(binding1);
Пошаговые руководства с примерами простой привязки данных см. в разделах Пошаговое руководство. Простая привязка данных в проекте уровня документа для проекта уровня документа и Пошаговое руководство. Простая привязка данных в проекте уровня приложения для проекта уровня приложения.
Сложная привязка данных
Сложная привязка данных существует, если свойство элемента управления привязано к нескольким элементам данных, например к нескольким столбцам в таблице данных. Элементом управления ListObject для Excel является только элемент управления ведущего приложения, который поддерживает сложную привязку данных. Существует множество элементов управления Windows Forms, которые поддерживают сложную привязку данных, например, элемент управления DataGridView.
Для выполнения сложной привязки данных задайте в качестве значения свойства DataSource элемента управления объект источника данных, который поддерживает сложную привязку данных. Например, свойство DataSource элемента управления ListObject, которое можно привязать к нескольким столбцам в таблице данных. Все данные в таблице данных отображаются в элементе управления ListObject, и при изменении данных в таблице элемент управления ListObject также изменяется. Список источников данных, которые можно использовать для сложной привязки см. в разделе Источники данных, поддерживаемые Windows Forms.
В следующем примере кода создается DataSet с двумя объектами DataTable и заполняется данными одна из таблиц. Затем код связывает объект ListObject с таблицей, содержащей данные. Это пример для проекта уровня документа Excel.
Private Sub ListObject_DataSourceAndMember()
' Create a DataSet and two DataTables.
Dim ordersDataSet As New DataSet("ordersDataSet")
Dim tableCustomers As New DataTable("Customers")
Dim tableProducts As New DataTable("Products")
ordersDataSet.Tables.Add(tableCustomers)
ordersDataSet.Tables.Add(tableProducts)
' Add a data to the Customers DataTable.
tableCustomers.Columns.Add(New DataColumn("LastName"))
tableCustomers.Columns.Add(New DataColumn("FirstName"))
Dim dr As DataRow = tableCustomers.NewRow()
dr("LastName") = "Chan"
dr("FirstName") = "Gareth"
tableCustomers.Rows.Add(dr)
' Create a list object.
Dim List1 As Microsoft.Office.Tools.Excel.ListObject = _
Me.Controls.AddListObject(Me.Range( _
"A1"), "Customers")
' Bind the list object to the Customers table.
List1.AutoSetDataBoundColumnHeaders = True
List1.DataSource = ordersDataSet
List1.DataMember = "Customers"
End Sub
private void ListObject_DataSourceAndMember()
{
// Create a DataSet and two DataTables.
DataSet ordersDataSet = new DataSet("ordersDataSet");
DataTable tableCustomers = new DataTable("Customers");
DataTable tableProducts = new DataTable("Products");
ordersDataSet.Tables.Add(tableCustomers);
ordersDataSet.Tables.Add(tableProducts);
// Add a data to the Customers DataTable.
tableCustomers.Columns.Add(new DataColumn("LastName"));
tableCustomers.Columns.Add(new DataColumn("FirstName"));
DataRow dr = tableCustomers.NewRow();
dr["LastName"] = "Chan";
dr["FirstName"] = "Gareth";
tableCustomers.Rows.Add(dr);
// Create a list object.
Microsoft.Office.Tools.Excel.ListObject list1 =
this.Controls.AddListObject(
this.Range["A1", missing], "Customers");
// Bind the list object to the Customers table.
list1.AutoSetDataBoundColumnHeaders = true;
list1.DataSource = ordersDataSet;
list1.DataMember = "Customers";
}
Пошаговые руководства с примерами сложной привязки данных см. в разделах Пошаговое руководство. Сложная привязка данных в проекте уровня документа для проекта уровня документа и Пошаговое руководство. Сложная привязка данных в проекте уровня приложения для проекта уровня приложения.
Отображение данных в документах и книгах
В проектах уровня документа с помощью окна Источники данных можно добавлять элементы управления с привязкой к данным в документы или книги так же просто, как и для Windows Forms. Дополнительные сведения об использовании окна Источники данных см. в разделах Общие сведения об отображении данныхи Окно "Источники данных".
Перетаскивание элементов управления из окна "Источники данных"
Элемент управления создается в документе при перетаскивании объекта из окна Источники данных. Тип создаваемого элемента управления зависит от того, связывается ли один столбец данных или несколько столбцов данных.
Для Excel элемент управления NamedRange создается на листе для каждого отдельного поля, а элемент управления ListObject создается для каждого диапазона данных, содержащего несколько строк и столбцов. Чтобы изменить параметры по умолчанию, выберите таблицу или поле в окне Источники данных и затем выберите в раскрывающемся списке другой элемент управления.
Для Word 2007 в документы добавляется элемент управления ContentControl. Тип элемента управления содержимым зависит от типа данных выбранного поля. Для Word 2003 в документы добавляется элемент управления Bookmark.
Привязка данных в проектах уровня документа во время разработки
В следующих разделах показаны примеры привязки данных во время разработки:
Практическое руководство. Заполнение листов данными из базы данных
Практическое руководство. Заполнение документов данными из базы данных
Практическое руководство. Заполнение документов данными из объектов
Практическое руководство. Заполнение документов данными из служб
Практическое руководство. Прокрутка записей базы данных на листе
Привязка данных в проектах уровня приложения
В проектах уровня приложения элементы управления добавляются только во время выполнения. В следующих разделах показаны примеры привязки данных во время выполнения:
Пошаговое руководство. Простая привязка данных в проекте уровня приложения
Пошаговое руководство. Сложная привязка данных в проекте уровня приложения
Обновление данных, привязанных к элементам управления ведущего приложения
При связывании данных между источником данных и элементом управления ведущего приложения существует два способа обновления данных. В случае простой привязки данных изменения в источнике данных автоматически отражаются в элементе управления ведущего приложения, но при изменениях в элементе управления ведущего приложения необходимо явно вызывать обновление источника данных. Причина в том, что в некоторых случаях изменения в одном поле связанных данных не принимаются, пока не будут дополнены изменениями в другом поле связанных данных. Например, предположим, что имеется два поля, одно для возраста, а второе для стажа работы. Стаж работы не может быть больше возраста. Пользователь не может изменить возраст с 50 на 25, и только потом уменьшить стаж с 30 до 10; такие изменения необходимо вносить одновременно. Чтобы разрешить эту проблему, поля с простой привязкой данных не обновляются до тех пор, пока код явно не отправит запрос на обновление.
Для обновления источника данных от элементов управления ведущего приложения, которые позволяют выполнять простую привязку данных, необходимо отправить обновленные данные в источник данных, находящийся в памяти (например, DataSet или DataTable) и в базу данных (если она используется в решении).
Если выполняется сложная привязка данных с помощью элемента управления ListObject, то не требуется явно обновлять источник данных в памяти. В этом случае изменения автоматически отправляются в источник данных, находящийся в памяти, без написания дополнительного кода.
Дополнительные сведения см. в разделе Практическое руководство. Обновление источника данных с помощью данных из элемента управления ведущего приложения.
См. также
Задачи
Практическое руководство. Создание элемента управления с простой привязкой в форме Windows Forms
Практическое руководство. Обновление данных с помощью адаптера таблицы
Основные понятия
Связывание данных и Windows Forms
Общие сведения об отображении данных
Общие сведения о сохранении данных
Другие ресурсы
Управление одновременным доступом в ADO.NET
Данные в решения Microsoft Office
Журнал изменений
Дата |
Изменения |
Причина |
---|---|---|
Июль 2008 |
Добавлены сведения о привязке данных к надстройкам уровня приложений. |
Изменение функции SP1. |