У нас есть форма XtraGrid с привязкой к данным в нашей форме Windows. Одним из столбцов является флажок. Проблема заключается в следующем: когда пользователи устанавливают флажок и нажимают кнопку «ОК», этот флажок, хотя и отображается явно, не считается проверенным сеткой. Когда я делаю это (во время цикла по строкам):
isAllowed = Convert.ToBoolean(viewMain.GetRowCellValue(nRowCtr, "IsAllowed"))
Я вернусь Ложь. НО, если пользователь установит флажок, а затем щелкнет где-нибудь еще на форме или в другой строке в этой сетке, тем самым убрав фокус с установленного флажка, тот же код выше вернет True.
Буду очень признателен за понимание того, как исправить это поведение.
Обходной путь найден:
При настройках по умолчанию, когда пользователи щелкают по ячейке, чтобы отредактировать ее, ячейка переходит в режим редактирования, загружает элемент управления редактора (в этом случае у меня есть элемент управления репозитория CheckEdit) и изменяет значение элемента управления (в данном случае проверяемое состояние). Если я щелкаю по другой строке или другому элементу управления, ячейка выходит из режима редактирования, фиксируя изменение элемента данных. Но если я нажму на кнопку, мои изменения будут потеряны. Временное решение: использовать событие CheckEdit CheckedChanged, чтобы закрыть редактор:
Private Sub edCheck_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles edCheck.CheckedChanged
gridYears.FocusedView.CloseEditor()
End Sub