Справка по C # DevExpress XtraGrid GridControl - сделать флажок в ячейке невидимым - PullRequest
1 голос
/ 10 марта 2010

У меня есть представление GridControl, которое заполняется одним столбцом как логическое значение для отображения значения в виде флажка.

Однако я хочу скрыть некоторые флажки в зависимости от состояния других столбцов. Я пытался использовать событие gridView_CustomDrawCell(), но не могу найти подходящее свойство.

Я ожидал найти свойство visible со значением false, но, похоже, его нет.

Возможно, можно скрыть флажок, когда заполняется представление, но я не могу вспомнить ни одного.

Кто-нибудь знает, возможно ли это и как?

Большое спасибо!

Ответы [ 2 ]

4 голосов
/ 11 марта 2010

Что я сделал для этого в проекте, так это установил RadioGroup в качестве элемента управления без элементов, поэтому он выглядел пустым.

private void viewTodoList_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)
        {
            if (e.Column == CheckMarkColumn)
            {
                if (ConditionIsMet())
                {
                    e.RepositoryItem = new DevExpress.XtraEditors.Repository.RepositoryItemRadioGroup();
                }
            }
        }
4 голосов
/ 10 марта 2010

Вы можете попытаться очистить Graphics и отметить событие как обработанное:

private void gridView_CustomDrawCell(object sender, RowCellCustomDrawEventArgs e)
{
    if (ConditionIsMet())
    {
        e.Graphics.Clear(e.Appearance.BackColor);
        e.Handled = true;
    }
}

Если это не работает, вот еще одна идея: обработать события CustomRowCellEdit и CustomRowCellEditForEditing и удалить редактор:

private void gridView_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e)
{
    if (ConditionIsMet())
    {
        e.RepositoryItem = null;
    }
}
...