Devexpress GridView更改事件中的自定义单元格外观

Devexpress GridView更改事件中的自定义单元格外观,devexpress,devexpress-windows-ui,Devexpress,Devexpress Windows Ui,我正在使用以下代码禁用XtraGrid GridView中的复选框列(按预期工作)。从这篇文章中获得了代码: 问题 当某个列发生更改并具有值时,我希望再次启用该复选框。这就是我被卡住的地方,我想我可以在GridView的CellValueChanged事件中更改它,但我不知道如何引用该行的单元格/列: 您需要刷新“忽略”列中的单元格。您可以通过调用方法来实现这一点。要标识需要刷新的行,CellValueChanged事件提供e.RowHandle参数 private void GridVie

我正在使用以下代码禁用XtraGrid GridView中的复选框列(按预期工作)。从这篇文章中获得了代码:

问题

当某个列发生更改并具有值时,我希望再次启用该复选框。这就是我被卡住的地方,我想我可以在GridView的CellValueChanged事件中更改它,但我不知道如何引用该行的单元格/列:


您需要刷新“忽略”列中的单元格。您可以通过调用方法来实现这一点。要标识需要刷新的行,CellValueChanged事件提供e.RowHandle参数

private void GridViewWeeklyPlan_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
    {
        if (e.Column.FieldName != "Reason") return;
        GridView view = (GridView)sender;   
        view.RefreshRowCell(e.RowHandle, view.Columns["Ignore"]);

    }
将再次引发CustomDrawCell事件以更新单元格外观

    private void GridViewWeeklyPlan_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
    {
        if (e.Column.FieldName != "Reason") return;


        if (String.IsNullOrEmpty(e.Value.ToString()))
        {
            //Make sure the checkbox is disabled again
        }
        else
        {
            //Enable the checkbox to allow user to select it
        }

    }
private void GridViewWeeklyPlan_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
    {
        if (e.Column.FieldName != "Reason") return;
        GridView view = (GridView)sender;   
        view.RefreshRowCell(e.RowHandle, view.Columns["Ignore"]);

    }