Задание 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; просмотров: 1922;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.