Как перехватить удаление строки (с клавиатуры) в datagridview? - PullRequest
3 голосов
/ 02 ноября 2009

Фон У меня есть пользовательская коллекция, привязанная к сетке данных

this.datagridview.DataSource = mycollection

У меня есть кнопка удаления в пользовательском интерфейсе. Пользователь может нажать на кнопку удаления, чтобы удалить выбранный каталог DX.

Некоторые записи нельзя удалить, поэтому я включаю и отключаю «кнопку удаления».

Работает нормально, если пользователь удаляет запись, нажимая кнопку удаления.

Проблема:

Когда пользователь нажал кнопку «удалить» с «клавиатуры»

Как можно отловить на клавиатуре кнопку «Удалить» .. Когда я нажимаю кнопку удаления с клавиатуры:

- удаляет выбранную строку из представления таблицы данных. - Когда пользователь нажимает сохранить .. он также сохраняет его в Xml ..

Чтобы исправить это, я обработал событие _RowRemoved представления сетки данных .. но все равно не помогло

Пожалуйста, помогите

Ответы [ 2 ]

11 голосов
/ 02 ноября 2009

Присоединить к событию UserDeletingRow и отменить удаление (при необходимости), установив e.Cancelled = true

0 голосов
/ 03 августа 2017

, поскольку у вас есть кнопка, которая обрабатывает, когда они могут «удалить», вы можете просто установить:

CanUserDeleteRows="false"

прямо в DataGrid в XAML.

это только мешает им использовать клавишу «удалить» (ваша кнопка все еще работает), поэтому вынуждает их удалять с помощью вашей кнопки.

Если вы хотите, чтобы они могли также использовать клавишу «удалить» (при необходимости), вам нужно будет прикрепить событие UserDeletingRow и обработать отмену, когда удаление не подходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...