0
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 からコントロールの正確なタイプを抽出する方法。

4

1 に答える 1