![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Задание 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. В результате проектирования в приложении сформирована коллекция с данными из таблицы базы данных. Необходимо настроить сетку 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" >
|