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 和一个组合框,但是在获取列类型时,我只将它作为 DataGridTemplateColumn 而不是类型 DataGridDatePickerColumn 或 DataGridComboboxColumn。如何从 DataGridTemplateColumn 中提取确切的控件类型。