У нас есть столбец DataGridViewCheckBox, связанный с логическим свойством в нашем классе.
Установщик свойств имеет некоторую логику, которая говорит, что при определенных условиях флаг True не может быть изменен, то есть он остается проверенным навсегда. Это на индивидуальной основе. Таким образом, весь столбец не может быть только для чтения, только определенные строки.
Псевдокод:
Public Property Foo() As Boolean
Get
Return _Foo
End Get
Set(ByVal value As Boolean)
If _Foo And Bar And value = False Then
//do nothing, in this scenario once you're true, you stay true
Else
_Foo = value
End If
End Set
End Property
Привязка данных обрабатывает все это прекрасно, за исключением того, что флажок визуально снимается при нажатии. Затем, конечно, когда привязка / установщик срабатывает (когда вы покидаете эту ячейку), она восстанавливается до своего проверенного состояния в соответствии с базовой логикой. В конечном счете, это не имеет большого значения, но это неуклюжий пользовательский интерфейс.
Как мы можем перехватить щелчок пользователя и сохранить его проверенным?