Пошаговое руководство. Отображение связанных данных в приложении WPF
В этом пошаговом руководстве описывается создание приложения WPF, отображающего данные из таблиц базы данных, между которыми существует иерархическое отношение. Данные инкапсулированы в сущностях в модели EDM. Родительская сущность содержит информацию общего характера о наборе заказов. Каждое свойство этой сущности привязано к другому элементу управления в приложении. Дочерняя сущность содержит подробные сведения по каждому заказу. Этот набор данных привязан к элементу управления DataGrid.
В данном пошаговом руководстве рассмотрены следующие задачи:
Создание приложения WPF и модели EDM, которая генерируется на основе данных в образце базы данных AdventureWorksLT.
Создание набора связанных с данными элементов управления, которые отображают информацию общего характера о наборе заказов. Элементы управления создаются путем перетаскивания родительской сущности из окна Источники данных в конструктор WPF.
Создание элемента управления DataGrid, который отображает связанные подробные сведения по каждому выбранному заказу. Элементы управления создаются путем перетаскивания дочерней сущности из окна Источники данных в окно в конструкторе WPF.
Примечание
На компьютере могут отображаться другие имена или расположения некоторых элементов пользовательского интерфейса Visual Studio, отличающиеся от указанных в дальнейших инструкциях.Эти элементы определяются используемой версией Visual Studio и ее параметрами.Дополнительные сведения см. в разделе Работа с параметрами.
Обязательные компоненты
Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.
Visual Studio 2010.
Доступ к выполняющемуся экземпляру SQL Server 2005 или SQL Server 2005 Express с подключенным образцом базы данных AdventureWorksLT. Базу данных AdventureWorksLT можно загрузить с веб-узла CodePlex.
Предварительное ознакомление со следующими понятиями полезно, но не обязательно для выполнения пошагового руководства:
Модели EDM и платформа Entity Framework в ADO.NET. Дополнительные сведения см. в разделах Entity Data Model и Introducing the Entity Framework.
Работа с конструктором WPF. Дополнительные сведения см. в разделе Общие сведения о конструкторах WPF и Silverlight.
Привязка данных в WPF. Дополнительные сведения см. в разделе Общие сведения о связывании данных.
Создание проекта
Создание нового проекта WPF для отображения записей о заказах.
Для создания нового проекта WPF выполните следующие действия
Запустите Visual Studio.
В меню Файл последовательно выберите пункты Создать и Проект.
Разверните Visual C# или Visual Basic, затем выберите Windows.
Удостоверьтесь, что в поле со списком в верхней части диалогового окна выбран пункт .NET Framework 4. Элемент управления DataGrid, используемый в этом руководстве, доступен только в .NET Framework 4.
Выберите шаблон проекта Приложение WPF.
В поле Имя введите AdventureWorksOrdersViewer.
Нажмите кнопку ОК.
Visual Studio создаст проект AdventureWorksOrdersViewer.
Создание модели EDM для приложения
Прежде чем приступать к созданию связанных с данными элементов управления, необходимо сначала определить модель данных и добавить ее в окно Источники данных. В этом руководстве в качестве модели данных избрана модель "сущность-данные" (Entity Data Model — EDM).
Для создания модели EDM выполните следующие действия
В меню Данные выберите команду Добавить новый источник данных, чтобы запустить Мастер настройки источника данных.
На странице Выбор типа источника данных выберите База данных и нажмите кнопку Далее.
На странице Выбор модели базы данных щелкните Модель EDM и нажмите кнопку Далее.
На странице Выбор содержимого модели щелкните Создать из базы данных и нажмите кнопку Далее.
На странице Выбор подключения к базе данных выполните одно из следующих действий:
Если в раскрывающемся списке отображено подключение к образцу базы данных AdventureWorksLT, выберите его.
– или –
Щелкните Создать подключение и создайте подключение к базе данных AdventureWorksLT.
Удостоверьтесь, что флажок Сохранить настройки подключения сущности в App.Config как установлен, и нажмите кнопку Далее.
На странице Выбор объектов базы данных разверните узел Tables и выберите следующие таблицы:
SalesOrderDetail
SalesOrderHeader
Нажмите кнопку Готово.
Выполните построение проекта.
Создание связанных с данными элементов управления, отображающих заказы
Создайте элементы управления, которые отображают записи о заказах, путем перетаскивания сущности SalesOrderHeaders из окна Источники данных в конструктор WPF.
Чтобы создать связанные с данными элементы управления, отображающие записи о заказах, выполните следующие действия
В обозревателе решений дважды щелкните MainWindow.xaml.
В конструкторе WPF откроется окно.
Внесите в XAML изменения, так чтобы для условий Высота и Ширина было задано значение "800".
В окне Источники данных щелкните раскрывающееся меню узла SalesOrderHeaders и выберите пункт Сведения.
Разверните узел SalesOrderHeaders.
Щелкните раскрывающееся меню рядом с SalesOrderID и выберите пункт ComboBox.
Для каждого из следующих дочерних узлов узла SalesOrderHeaders щелкните раскрывающееся меню рядом с узлом и выберите Нет:
RevisionNumber
OnlineOrderFlag
ShipToAddressID
BillToAddressID
CreditCardApprovalCode
SubTotal
TaxAmt
Freight
rowguid
ModifiedDate
Это действие запрещает Visual Studio создавать на следующем шаге связанные с данными элементы управления для этих узлов. В этом пошаговом руководстве предполагается, что конечному пользователю нет нужды видеть эти данные.
Перетащите узел SalesOrderHeaders из окна Источники данных в окно в конструкторе WPF.
Visual Studio генерирует язык XAML, который создает набор элементов управления, связанных с данными в сущности SalesOrderHeaders, и код, загружающий эти данные. Дополнительные сведения о сгенерированном языке XAML и коде см. в разделе Привязка элементов управления WPF к данным в Visual Studio.
В конструкторе щелкните поле со списком рядом с меткой ID заказа на продажу.
В окне Свойства установите флажок около свойства IsReadOnly.
Создание элемента управления DataGrid, отображающего подробные сведения о заказах
Создайте элемент управления DataGrid, который отображает подробные сведения о заказах, путем перетаскивания сущности SalesOrderDetails из окна Источники данных в конструктор WPF.
Для создания элемента управления DataGrid, отображающего подробные сведения о заказах, выполните следующие действия
В окне Источники данных найдите узел SalesOrderDetails, являющийся дочерним узлом узла SalesOrderHeaders.
Примечание
Имеется также узел SalesOrderDetails, являющийся одноранговым по отношению к узлу SalesOrderHeaders.Удостоверьтесь, что выбран именно дочерний узел узла SalesOrderHeaders.
Разверните дочерний узел SalesOrderDetails.
Для каждого из следующих дочерних узлов узла SalesOrderDetails щелкните раскрывающееся меню рядом с узлом и выберите Нет:
SalesOrderID
SalesOrderDetailID
rowguid
ModifiedDate
Это действие запрещает Visual Studio добавлять эти данные в элемент управления DataGrid, который будет создан на следующем шаге. В этом пошаговом руководстве предполагается, что конечному пользователю нет нужды видеть эти данные.
Перетащите дочерний узел SalesOrderDetails из окна Источники данных в окно в конструкторе WPF.
Visual Studio генерирует язык XAML для определения нового связанного с данными элемента управления DataGrid, и этот элемент отображается в конструкторе. Visual Studio также обновляет созданный метод GetSalesOrderHeadersQuery в файле с выделенным кодом, чтобы добавить данные в сущности SalesOrderDetails.
Тестирование приложения
Соберите и запустите приложение для проверки, отображает ли оно записи о заказах.
Проверка работы приложения
Нажмите клавишу F5.
Выполняется сборка и запуск приложения. Проверьте следующее:
В поле со списком Идентификатор заказа на продажу отображается 71774. Это первый идентификатор заказа в данной сущности.
О каждом заказе, выбранном в поле со списком ID заказа на продажу, в элементе DataGrid отображаются подробные сведения.
Закройте приложение.
Следующие действия
Завершив выполнение инструкций, выясните, как использовать окно Источники данных в Visual Studio для привязки элементов управления WPF к источникам данных других типов. Дополнительные сведения см. в разделах Пошаговое руководство. Привязка элементов управления WPF к службе данных WCF и Пошаговое руководство. Привязка элементов управления WPF к набору данных.
См. также
Задачи
Практическое руководство. Отображение связанных данных в приложениях WPF