Как редактировать ячейку в 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 шт):
Настройка 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);
}
}