Сетка данных WPF редактируется только при двойном щелчке - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть DataGrid, и я хочу, чтобы пользователь мог редактировать некоторые столбцы, но только если они сначала дважды щелкнут по ячейке.В тот момент, если они щелкают один раз по ячейке, а затем начинают набирать ее, она мгновенно переходит в режим редактирования.

Я попытался использовать событие MouseDoubleClick и затем отключить только для чтения, но не смог установить это свойство в коде позади.

Любая помощь / другие предложения?Спасибо

1 Ответ

0 голосов
/ 29 ноября 2018

Я решил эту проблему, установив атрибут столбца IsReadOnly = "True".

Затем подключил событие MouseDoubleClick для каждой ячейки.

<Style TargetType="{x:Type DataGridCell}">
    <EventSetter Event="MouseDoubleClick" Handler="DataGridCell_MouseDoubleClick" />
</Style>

и в коде:

private void DataGridCell_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    if (sender.GetType() == typeof(DataGridCell))
    {
         DataGridCell cell = sender as DataGridCell;
         cell.IsEditing = true;
    }
}

Кажется, это игнорирует свойство isreadonly, и я могу успешно обновить свойство после двойного щелчка.Вы также можете отфильтровать определенные столбцы в этом месте по имени, но мне это не требуется.

...