public void MouseSingleClickEditable(object sender, MouseButtonEventArgs e)
{
if ((!datagrid.HasItems) || datagrid.SelectedIndex < 0) return;
DataGridColumn clmn = datagrid.CurrentColumn;
if (clmn != null)
{
String columnType = clmn.GetType().Name;
switch (columnType)
{
case "DataGridTemplateColumn":
case "DataGridCheckBoxColumn":
row = (DataGridRow)datagrid.ItemContainerGenerator.ContainerFromItem(datagrid.Items[datagrid.SelectedIndex]);
if (!row.IsEditing)
{
datagrid.IsReadOnly = false;
datagrid.BeginEdit();
}
break;
default:
break;
}
}
}
WPF Datagrid に 2 つの DatePickers、Checkbox、およびコンボボックスがありますが、列の型を取得しているときに、DataGridDatePickerColumn または DataGridComboboxColumn 型ではなく、DataGridTemplateColumn としてのみ取得しています。DataGridTemplateColumn からコントロールの正確なタイプを抽出する方法。