У меня проблема с моей DataGrid, которую я создал некоторое время назад.DataGrid показывает информацию о задачах проекта.Теперь я должен сделать столбцы начальной и конечной даты редактируемыми.Для этого я изменил DataGridTextColumn со следующим кодом:
<DataGridTemplateColumn Header="Start" Width="100" CanUserReorder="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DatePicker
x:Name="DpStartDate"
SelectedDate="{Binding PlannedStart, StringFormat=\{0:dd.MM.yyyy\}}"
IsEnabled="False"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Пока все хорошо.Теперь проблема в том, что мне нужно проверять каждую строку, находится ли Задача в правильном состоянии, чтобы изменить дату.Если это так, я должен включить DatePicker.В коде позади я попробовал это так:
for(int _i = 0; _i < DgvProjectTaskList.Items.Count; _i++)
{
switch (((TaskListViewModel) DgvProjectTaskList.Items[_i]).Task.State)
{
case TaskStates.InWork:
{
DatePicker _dpStart = DgvProjectTaskList.Columns[4].GetCellContent(_i) as DatePicker;
_dpStart.IsEnabled = false;
DatePicker _dpEnd = DgvProjectTaskList.Columns[5].GetCellContent(_i) as DatePicker;
_dpEnd.IsEnabled = true;
break;
}
case TaskStates.Done:
{
DatePicker _dpStart = DgvProjectTaskList.Columns[4].GetCellContent(_i) as DatePicker;
_dpStart.IsEnabled = false;
DatePicker _dpEnd = DgvProjectTaskList.Columns[5].GetCellContent(_i) as DatePicker;
_dpEnd.IsEnabled = false;
break;
}
default:
{
DatePicker _dpStart = DgvProjectTaskList.Columns[4].GetCellContent(_i) as DatePicker;
_dpStart.IsEnabled = true;
DatePicker _dpEnd = DgvProjectTaskList.Columns[5].GetCellContent(_i) as DatePicker;
_dpEnd.IsEnabled = true;
break;
}
}
}
Проблема в том, что "GetCellContent" возвращает null каждый раз.Итак, мой вопрос, как я могу изменить DatePicker в каждой строке отдельно?Заранее спасибо!