在datagridview列中替换true / false
我有一个datagridview,我填写如下:
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";
“IsActive”属性是布尔类型。 当显示“IsActive”单元格时,它显示true / false。 我想用我自己的自定义值替换它。
我读了这个post,但我无法解决我的问题。
您可以使用DataGridView
的CellFormatting
事件,例如:
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; } }
编辑(根据评论):
它与您现在正在执行的操作非常相似,只需删除绑定列并添加所需类型的新列并正确设置DataPropertyName
,例如:
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);
请注意,这会在末尾追加列,但您可以使用dataGridView.Columns.Insert
方法而不是Add
来确定列的位置。
- GetWeekOfYear with Entity Framework
- AjaxfileUpload错误
- 如何在C#中运行多个进程
- Oracle.DataAccess.Client.OracleException ORA-03135:连接丢失联系
- 使用Expression.AndAlso()在C#中分割表达式会导致exception
- 在.NET 4.0中,WebGrid + Paging + Sorting + Filtering中的filter丢失了
- 如何在C#中以编程方式创建柔和的颜色?
- Google .NET API – 除FileDataStore之外的任何其他DataStore?
- 使用C#从USB读取数据?