Показывать 0/1 как да / нет в DevExpress XtraGrid? - PullRequest
0 голосов
/ 11 ноября 2019

У меня был этот код для обычного DataGridView, и у меня возникли проблемы с получением того же эффекта на XtraGrid:

private void RosterGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.ColumnIndex == 7 && e.Value is long)
    {
        e.Value = (long)e.Value == 0 ? "No" : "Yes";
    }
}

Проблема в том, что я использую SQLite, и он нелогический тип данных, иначе это будет легко. Столбец настроен в БД так, чтобы принимать только 0 и 1, что-то вроде временного логического значения.

1 Ответ

0 голосов
/ 11 ноября 2019

С DevExpress вы можете настроить определенный столбец для использования RepositoryItemCheckEdit :

// Assign a repository item to a column            
RepositoryItemCheckEdit checkEdit = new RepositoryItemCheckEdit();
gridControl.RepositoryItems.Add(checkEdit);
gridView.Columns["Mark"].ColumnEdit = checkEdit;

После этого вы можете настроить ValueChecked , * 1008Свойства * ValueUnchecked и ValueGrayed определяют значения, которые соответствуют проверенному, непроверенному и неопределенному состоянию редактора соответственно. Значения по умолчанию для свойств ValueChecked, ValueUnchecked и ValueGrayed равны true, false and null соответственно. Вы можете назначить пользовательские значения этим свойствам, как того требует ваша логика:

checkEdit.ValueChecked = (long)1;
checkEdit.ValueUnchecked = (long)0;

При таком подходе можно избежать любых операций преобразования значений при отображении и редактировании значений в GridView.

...