C# 在DataGridView中显示按钮列

C# 在DataGridView中显示按钮列,c#,.net,data-binding,datagridview,mvp,C#,.net,Data Binding,Datagridview,Mvp,在Win forms应用程序中,我遇到数据绑定问题,在DataGridView中显示命令按钮列作为最后一列,允许用户在编辑内容后保存每条记录 这是在presenter类中完成的绑定部分 private void ShowEarnings() { BindingSource BS = new BindingSource(); var wageInfo = _WageManager.PrepareEarnings(_Model); // wageInfo contains a lis

在Win forms应用程序中,我遇到数据绑定问题,在DataGridView中显示命令按钮列作为最后一列,允许用户在编辑内容后保存每条记录

这是在presenter类中完成的绑定部分

private void ShowEarnings()
{
    BindingSource BS = new BindingSource();
    var wageInfo = _WageManager.PrepareEarnings(_Model); // wageInfo contains a list of earnings objects.
    BS.DataSource = wageInfo.GetEarnigsList(); //Earnings List contained in WageInfo object is returned.           
    _View.EarningDetails = BS;
}
在form_load事件中,我向DGV添加了一个命令按钮列,如下所示

private void ShowSaveEarningsButton()
{
    DataGridViewButtonColumn col = new DataGridViewButtonColumn();
    col.UseColumnTextForButtonValue = true;
    col.Text = "SAVE";
    col.Name = "ACTION";
    dgEmployeeEarnings.Columns.Add(col);
}
加载表单时,最后一列显示标题
ACTION
,单元格中显示空白按钮(第一个屏幕截图)。调用
ShowEarnings()
方法时,将填充DGV,现在按钮列显示为第三列(第二个屏幕截图)。但它应该始终显示为最后一列

请问怎么处理

请看屏幕截图


编辑:如果我在绑定后添加列,它将正确显示。但我先要

订阅
数据绑定完成
事件并重置
显示索引
属性

void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
    dgEmployeeEarnings.Columns["ACTION"].DisplayIndex = dgEmployeeEarnings.Columns.Count - 1;
}

尝试设置
column.DisplayIndex=lastIndex
@Sriram Sakthivel,无效!。问题是,即使它最初显示为最后一列,它在绑定后还是会出现在第三列?