Как редактировать ячейку в DataGrid?

Я новичок в этой теме, мне очень нужна помощь специалиста в этой теме. Суть в том чтобы задействовать 3 кнопки влияющие на информацию, которая отображается в DataGrid (данные импорттрованы с sql) 1 кнопка отвечает за добавление услуги:

private void Button_Click_dobavits(object sender, RoutedEventArgs e) 
  { 
   schoolEntities.GetContext().Service.Add(_currentService); 
   try 
   { 
    schoolEntities.GetContext().SaveChanges(); 
    MessageBox.Show("Информация была сохранена!"); 
   } 
   catch (Exception ex) 
   { 
    MessageBox.Show(ex.Message.ToString()); 
   } 
    
  }

2 кнопка отвечает за удаление:

var serviceRemove = DGridService.SelectedItems.Cast<Service>().ToList(); 
 
   schoolEntities.GetContext().Service.RemoveRange(serviceRemove); 
   schoolEntities.GetContext().SaveChanges(); 
   MessageBox.Show("Данные удалены!!"); 
   DGridService.ItemsSource = schoolEntities.GetContext().Service.ToList();

а 3 кнопка, РЕДАКТИРОВАНИЕ, как должна быть реализована, чтобы данные можно было изменить?


Ответы (1 шт):

Автор решения: web developer

Настройка CurrentCell, а затем вызов BeginEdit(true)работает хорошо для меня.

В следующем коде показан обработчик событий для KeyDownсобытия, которое делает ячейку доступной для редактирования.

В моем примере реализовано только одно из необходимых переопределений нажатия клавиш, но теоретически остальные должны работать одинаково. (и я всегда устанавливаю ячейку [0][0] доступной для редактирования, но любая другая ячейка должна работать)

private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Tab && dataGridView1.CurrentCell.ColumnIndex == 1)
        {
            e.Handled = true;
            DataGridViewCell cell = dataGridView1.Rows[0].Cells[0];
            dataGridView1.CurrentCell = cell;
            dataGridView1.BeginEdit(true);               
        }
    }
→ Ссылка