replace true/false in datagridview columns

后端 未结 2 1950
粉色の甜心
粉色の甜心 2020-12-11 16:56

I have a datagridview which I fill it as below :

var q= repository.GetStudents();//

dataGridView1.DataSource = null;
dataGridView1.Columns.Clear();

dataGri         


        
2条回答
  •  星月不相逢
    2020-12-11 17:38

    You can use the CellFormatting event of the DataGridView, e.g.:

    void dataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        var grid = (DataGridView)sender;
        if (grid.Columns[e.ColumnIndex].Name == "IsActive")
        {
            e.Value = (bool)e.Value ? "MY_TEXT_FOR_TRUE" : "MY_TEXT_FOR_FALSE";
            e.FormattingApplied = true;
        }
    }
    

    EDIT (as per comment):

    It's very similar to what you're doing now, just remove the bound column and add a new column of the desired type and set the DataPropertyName properly e.g. :

    this.dataGridView1.Columns.Remove("COL_TO_CUSTOMIZE");
    var btnCol = new DataGridViewDisableButtonColumn();
    btnCol.Name = "COL_TO_CUSTOMIZE";
    btnCol.DataPropertyName = "COL_TO_CUSTOMIZE";
    var col = this.dataGridView1.Columns.Add(btnCol);
    

    Note that this append the column at the end, but you can decide the position of the column by using dataGridView.Columns.Insert method instead of Add.

提交回复
热议问题