Моя общая цель состоит в том, чтобы иметь WPF DataGrid, который будет показывать мои данные в обычном режиме, но при редактировании имеет ComboBox с возможными значениями для этого конкретного столбца.Настройка ItemsSource на ComboBox в DataTemplate
Так, например, у меня есть следующие данные в моем DataGrid
| Name | Work Date | Clock In | Clock Out | Job | Hours |
|------------------|-------------------------|----------|-----------|--------|-------|
| Edaurdo Gutierez |Friday February 12, 2016 | 1:06 PM | 9:00 PM | Server | 8.00 |
| Rubisel Lozano |Friday February 12, 2016 | 12:55 PM | 8:59 PM | Server | 8.00 |
| Paul Burks |Friday February 12, 2016 | 8:59 AM | 5:30 PM | Chef | 8.50 |
| Roberto Agular |Friday February 12, 2016 | 8:30 AM | 4:10 PM | Chef | 7.75 |
Я хочу, чтобы иметь возможность дважды щелкнуть ячейку и отредактировать его значение, но шаблон для редактирования будет отличаться с каждым из столбцов , Мне нужно сделать это для Рабочего дня, Часы, Часы и Работа.
У меня есть стол рабочей даты, работающий по назначению, но это проще, потому что он заполняет DatePicker для меня. Для столбца Job я просто получаю пустой ComboBox, потому что я не знаю, как установить его в ItemsSource. Вот некоторые из кода, который делает функцию столбца «Дата работы».
XAML
<UserControl.Resources>
<DataTemplate x:Key="tmpDate">
<TextBlock Text="{Binding Path = Date, StringFormat = '{}{0:dddd MMMM dd, yyyy}'}" />
</DataTemplate>
<DataTemplate x:Key="tmpDateEdit">
<DatePicker SelectedDate="{Binding Path = Date}"/>
</DataTemplate>
</UserControl.Resources>
C#
private void gridTimeSheet_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
DataGridColumn col = e.Column;
if (col.Header.ToString() == "Date")
{
DataGridTemplateColumn tmpCol = new DataGridTemplateColumn();
tmpCol.CellTemplate = (DataTemplate)FindResource("tmpDate");
tmpCol.CellEditingTemplate = (DataTemplate)FindResource("tmpDateEdit");
tmpCol.Header = "Date";
e.Column = tmpCol;
}
}
Так что мой вопрос, как я могу сделать работу колонки Работа подобным образом, так что, когда я дважды щелкните для редактирования ячейки, ComboBox возможных значений для Джобса? То, как я хочу заполнить этот ComboBox, будет через DataTable, созданный из SQL-запроса.
Я открыт для любых предложений. Возможно, DataTemplate не является моим лучшим вариантом для выполнения этих столбцов. Любые рекомендации приветствуются.
Спасибо!
Я довольно новичок в этом, поэтому я никогда раньше не использовал модель представления. Я посмотрю, как это работает, и это должно работать на меня. Благодаря! –