C# 如何在DataBindingComplete方法中重新格式化所有单元格?

C# 如何在DataBindingComplete方法中重新格式化所有单元格?,c#,winforms,c#-4.0,datagridview,C#,Winforms,C# 4.0,Datagridview,我需要在方法:databindingplete中按名称迭代所有行/单元格,并按条件替换值 我试着这样做: private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { string pass = dataGridView1.Rows[e.RowIndex].Cells["dataGridViewTextBoxColumn45"].Value.T

我需要在方法:
databindingplete
中按名称迭代所有行/单元格,并按条件替换值

我试着这样做:

private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
    string pass = dataGridView1.Rows[e.RowIndex].Cells["dataGridViewTextBoxColumn45"].Value.ToString();
               dataGridView1.Rows[e.RowIndex].Cells["dataGridViewTextBoxColumn45"].Value = (pass == "1") ? "Повторно" : "Первый раз";
}
但是没有
e.RowIndex
属性。怎么做

不要建议我使用方法
\u CellFormatting
。它对我不起作用,因为我有自定义列,可以用这个方法呈现

我也试过这样做:

private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) {
foreach (DataGridViewRow row in dataGridView1.Rows)
{
     intRow++;
     string pass = dataGridView1.Rows[intRow].Cells["dataGridViewTextBoxColumn45"].Value.ToString();

               dataGridView1.Rows[intRow].Cells["dataGridViewTextBoxColumn45"].Value = (pass == "1") ? "Повторно" : "Первый раз";
}
}
它返回一个错误:

发生System.StackOverflowException HResult=0x800703E9


在foreach循环中不需要索引:

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    if (row.Cells[0] is DataGridViewTextBoxCell)
    {
         string pass = ((DataGridViewTextBoxCell)row.Cells[0]).Value;
         ((DataGridViewTextBoxCell)row.Cells[0]).Value = (pass == "1") ? "Повторно" : "Первый раз";
    }
}

它给了我一个错误:
“无法将类型为”System.Windows.Forms.DataGridViewTextBoxCell“的对象强制转换为类型为”System.Windows.Forms.DataGridViewCheckBoxCell“。
我需要按名称和替换值进行检查。您没有更改答案我为DataGridViewTextBoxCell替换了DataGridViewCheckBoxCell,仍然不工作?如何检查额外的类型,如果文本然后回复?