![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Привязка выпадающего списка
Привязка данных к колонке типа DataGridComboBoxColumn требует определенной подготовительной работы. Если в таблице модели данных хранится не текстовое значение поля, а внешний ключ для другой таблицы, где находится данные, то в EDM-модели можно получить значение атрибута из связанных таблиц. Для этого используется атрибут связи в таблице EDM-модели. Например, для обеспечения возможности работы с коллекцией таблицы Title в приложении добавте в проект папку Model и в ней создайте класс ListTitle. public class ListTitle: ObservableCollection< Title> { public ListTitle() { ObjectQuery< Title> titles = PageEmployee.DataEntitiesEmployee.Titles; var queryTitle = from title in titles select title; foreach (Title titl in queryTitle) { this.Add(titl); } }}Класс ListTitle наследуется от класса обобщенной коллекции ObservableCollection< T> и его назначение создавать коллекцию объектов Title. Поле titles является запросом типа ObjectQuery< Title>. Данному полю присваивается свойство Titles контекста данных DataEntitiesEmployee, который определен в классе приложения. Запрос LINQ получает данные из базы данных в поле queryTitle и затем в цикле foreach формируется коллекция класса ListTitle. Для использования класса ListTitle в XAML-документе класса приложения необходимо объявить данный класс как ресурс. При этом нужно подключить пространство имен WpfApplProject.Model. xmlns: core =" clr-namespace: WpfApplProject.Model"Затем определите ресурс страницы с ключом listTitle. < Page.Resources> < core: ListTitle x: Key=" listTitle" /> < /Page.Resources>Далее модифицируйте XAML-описание для типа DataGridComboBoxColumn. < DataGridComboBoxColumn Header=" Должность" ItemsSource=" {Binding Source={StaticResource listTitle}}" DisplayMemberPath=" Title1" SelectedValueBinding=" {Binding Path=TitleID, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedValuePath=" ID" />Источник выпадающего списка задается как статический ресурс { StaticResource listTitle }. Выводимое в ячейки колонки поле должно соответствовать полю Title1 таблицы Title EDM-модели (DisplayMemberPath=" Title1"). Выбираемый в списке параметр (SelectedValueBinding) должен быть привязан к полю TitleID таблицы Employee. SelectedValueBinding=" {Binding Path=TitleID, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"Выбор в свойства SelectedValueBinding производится по пути определенному свойством SelectedValuePath (SelectedValuePath=" ID").
|