2013-08-15 2 views
1

У меня есть таблица в моей базе данных, которая представляет список областей. Я хотел бы получить все эти элементы в этом списке и связать их с выпадающим списком combobox в моем datagrid. В настоящее время это работает, и мой столбец сетки отображает это раскрывающееся меню. Однако, когда я выбираю элемент в ячейке и перехожу к следующей строке, ячейка становится пустой. Кроме того, если запись в базе данных имеет сохраненное значение «area1», а мой раскрывающийся список имеет «area1, area2, area3 и т. Д.», Когда сетка загружается, она не автоотделяет область 1, ячейка просто пустая.Datagrid ComboBox Binding

В моей модели:

comboboxColumn1.ItemsSource = ctx.AREAS;//db context loading all areas into combobox 

В моем XAML:

<DataGrid.Columns> 

      <DataGridComboBoxColumn DisplayMemberPath="Name" Header="some header" x:Name="comboboxColumn1" SelectedValueBinding="{Binding Name}" /> 
.... 

Как я могу установить значение этого выбранное значение так, что она равна любой запись в БД?

+0

У меня была страшная удача с 'DataGridComboBoxColumn', и гораздо лучшая удача с помощью пользовательской' DataGridTemplateColumn', которая просто имеет в ней поле со списком или еще лучше использует «ListView». –

+0

Спасибо за совет. Я проверю это. –

ответ

1

Вам необходимо установить значение SelectedValuePath в свойство переменной. DisplayMemberPath - это то, что показано, и SelectedValuePath - это то, что выбрано. SelectedItem - это тот элемент, который выбран.

+0

Вот что сработало: Где GACC является entity и Name - это свойство в GACC. –