Editing DataGrid with one Click making the delete Function buggy?

Viewed 15

Ive got an DataGrid in which Ive had the problem that I need 2 Clicks to edit an DataGrid field.

To avoid this problem ive made this GotFocus Event to prevent this :

 private void IDGrid_GotFocus(object sender, RoutedEventArgs e)
    {
        // Lookup for the source to be DataGridCell
        if (e.OriginalSource.GetType() == typeof(DataGridCell))
        {
            // Starts the Edit on the row;
            DataGrid grd = (DataGrid)sender;
            grd.BeginEdit(e);

            Control control = GetFirstChildByType<Control>(e.OriginalSource as DataGridCell);
            if (control != null)
            {
                control.Focus();
            }
        }
    }
    private T GetFirstChildByType<T>(DependencyObject prop) where T : DependencyObject
    {
        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(prop); i++)
        {
            DependencyObject child = VisualTreeHelper.GetChild((prop), i) as DependencyObject;
            if (child == null)
                continue;

            T castedProp = child as T;
            if (castedProp != null)
                return castedProp;

            castedProp = GetFirstChildByType<T>(child);

            if (castedProp != null)
                return castedProp;
        }
        return null;
    }

But the Problem is that with this Code the RowHeader needs to Clicks to delete a Row and when its deleted he create another row becaue with the Focus it jumps into an new Field.

How could I edit this Event to become an one click delete and one click focus on the DataGrid cells?

0 Answers
Related