Привязка выпадающего списка

Привязка данных к колонке типа 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").








Дата добавления: 2015-04-15; просмотров: 1387;


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

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

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

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