Проверка флажка DevExpress XtraGrid не зарегистрирована, если фокус не изменится

У нас есть привязка к базе данных 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
7
задан Alex Polkhovsky 21 March 2011 в 13:45
поделиться