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