Редактировать DataGridViewCell для свойства объекта только для чтения - PullRequest
0 голосов
/ 27 мая 2020

Я привязал DataGridView к BindingList<MyObj>, у которого есть свойство Value только для чтения (защищено).

Итак, у меня есть способ изменить его значение (MyObj.SetValue(string newValue)).

Стандартным поведением DataGridView также является блокировка редактирования ячейки, но нет возможности «смоделировать» редактирование и затем передать правильный метод для обновления значения?

Я попытался установить column.ReadOnly = false , но выдает исключение. Он не запускает событие CellBeginEdit, поэтому мне нужно будет создать другое текстовое поле перед ним, чтобы сделать это?

1 Ответ

0 голосов
/ 02 июня 2020

В соответствии с MSDN единственным исключением может быть:

Исключения InvalidOperationException При установке этого свойства нет строки-владельца.

-или-

При установке этого свойства строка-владелец является общей.

Итак, проверьте, действительно ли это OwningRow или эта строка является общей.

Кроме того, Remark section говорит:

Свойство ReadOnly указывает, можно ли редактировать данные, отображаемые ячейкой. >> Вы можете установить ReadOnly для отдельных ячеек или вы можете сделать всю строку или столбец из>> ячеек доступным только для чтения, установив свойства DataGridViewRow.ReadOnly или DataGridViewColumn.ReadOnly>>. По умолчанию, если родительская строка или столбец ячейки настроены только для чтения, дочерние> ячейки будут принимать то же значение. Вы можете переопределить это поведение по умолчанию, установив>>>> Только для чтения для отдельных ячеек.

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

ReadOnly влияет только на то, доступна ли ячейка для редактирования; это не влияет на то, может ли пользователь>> удалять строки.

Похоже, это все есть.

...