remplace true / false dans les colonnes datagridview

J’ai un datagridview que je remplis comme ci-dessous:

var q= repository.GetStudents();// dataGridView1.DataSource = null; dataGridView1.Columns.Clear(); dataGridView1.DataSource = q; dataGridView1.Columns.RemoveAt(1); //Remove IsActive //Cause I want to have my own implementation dataGridView1.Columns[0].DataPropertyName = "StudentID"; dataGridView1.Columns[0].HeaderText = "Studunet ID"; dataGridView1.Columns[1].DataPropertyName = "IsActive"; dataGridView1.Columns[1].HeaderText = "Status"; 

La propriété “IsActive” est de type booléen. Lorsque la cellule “IsActive” est affichée, elle indique vrai / faux. Je veux le remplacer par ma propre valeur personnalisée.

J’ai lu ceci et ces messages mais je n’ai pas pu résoudre mon problème.

Vous pouvez utiliser l’événement CellFormatting de DataGridView , par exemple:

 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 (selon le commentaire):

C’est très similaire à ce que vous faites maintenant, il suffit de supprimer la colonne liée et d’append une nouvelle colonne du type souhaité et de définir correctement le DataPropertyName par exemple:

 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); 

Notez que ceci ajoute la colonne à la fin, mais vous pouvez décider de la position de la colonne en utilisant la méthode dataGridView.Columns.Insert au lieu de Add .