Задание 4. Произвести привязку данных к элементам контроля – 2 часа.
Для взаимодействия приложения с базой данных необходимо в коде класса страницы объявить статическое свойство контекста данных сформированной EDM-модели. Это свойство целесообразно объявлять статическим.
Например:
public static TitlePresonalEntities DataEntitiesEmployee { get; set; }Также необходимо объявить обобщенную коллекцию типа ObservableCollection<Employee> для работы приложения с коллекцией объектов базы данных. Этот тип представляет коллекцию динамических данных, обеспечивающих выдачу уведомления при получении и удалении элементов или при обновлении всего списка. Тип ObservableCollection<Т> находится в пространстве имен System.Collections.ObjectModel, ссылку на которое нужно добавить в объявлении класса приложения.
using System.Collections.ObjectModel;Экземпляры свойств контекста данных и коллекции необходимо создать в конструкторе класса страницы.
Например:
public PageEmployee(){ InitializeComponent(); DataEntitiesEmployee = new TitlePresonalEntities(); ListEmployee = new ObservableCollection<Employee>();}Формирование данных для приложения, которые должны предоставляться из базы данных, буде проводиться при загрузке страницы приложения. Для этого в XAML-документ Page добавьте свойство Loaded.
Loaded="Page_Loaded"В код класса страницы приложения включаем обработчик Page_Loaded.
private void Page_Loaded(object sender, RoutedEventArgs e){ ObjectQuery<Employee> employees = DataEntitiesEmployee.Employees; var queryEmployee = from employee in employees orderby employee.Surname select employee; foreach (Employee emp in queryEmployee) { ListEmployee.Add(emp); } DataGridEmployee.ItemsSource = ListEmployee;}Поле employees имеет тип ObjectQuery<Employee>. Класс ObjectQuery<Т> представляет запрос, возвращающий коллекцию типизированных сущностей с любым количеством элементов. Запрос сформируем с помощью технологии LINQ.
var queryEmployee = from employee in employees orderby employee.Surname select employee;Результаты запроса целесообразно отсортировать, например по фамилии сотрудника ( orderby employee.Surname ). Далее формируем коллекцию объектов базы данных и источник данных для сетки DataGrid.
foreach (Employee emp in queryEmployee) { ListEmployee.Add(emp); }DataGridEmployee.ItemsSource = ListEmployee;В результате проектирования в приложении сформирована коллекция с данными из таблицы базы данных.
Необходимо настроить сетку DataGrid для корректного отображения данных.
Модифицируйте общее описание DataGrid.
1. Определите привязку для источника данных.
ItemsSource="{Binding}"2. Отмените автоматическую генерацию столбцов.
AutoGenerateColumns="False"3. Установите привязку к левому краю страницы.
HorizontalAlignment="Left"4. Определите максимальные размеры сетки.
MaxWidth="1000" MaxHeight="295"5. Установите основной и альтернативный цвета заливки сетки.
6. RowBackground="#FFE6D3EF" AlternatingRowBackground="#FC96CFD4"7. Определите цвет заливки и толщину линии для рамки сетки.
8. BorderBrush="#FF1F33EB" BorderThickness="3"9. Определите высоту строк сетки.
RowHeight="25"10. Переопределите форму курсора при наведении указателя мыши на таблицу DataGridEmployee.
Модифицированное XAML-описание сетки DataGrid:
Cursor="Hand"<DataGrid Name="DataGridEmployee" ItemsSource="{Binding}"AutoGenerateColumns="False" HorizontalAlignment="Left" MaxWidth="1000" MaxHeight="295" RowBackground="#FFE6D3EF" AlternatingRowBackground="#FC96CFD4" BorderBrush="#FF1F33EB" BorderThickness="3" IsReadOnly="True" RowHeight="25" Cursor="Hand">Дата добавления: 2015-04-15; просмотров: 1886;