以另一种形式编辑Datagridview行项(Master-Detail)

时间:2012-11-16 18:11:41

标签: c# data-binding

在我的c#(VS2008)应用程序中,我有2个winforms。在Form1中,有一个DataGridView,它显示“Employee”对象的列表。此datagridview数据绑定到EmployeeList BindingSource。在Form2中,控件绑定到Employee bindingsource。

我能够将Form2中的Employee添加到Form1中的EmployeeList。我想要的是每当我在datagridview中双击时,Form2将打开所选的Employee数据。然后更新的数据将发送回Form1 datagridview。但是没有从Form2更新datagridview。

这样做的技术是什么。

提前感谢。 SKPaul。

2 个答案:

答案 0 :(得分:0)

如果没有任何已发布的代码,我们无法帮助解决任何特定问题,但这是您可以尝试的通用代码:

在Form1中

public void UpdateEmployee(Employee emp)
{
   //update whatever info for that employee
}


private void dataGridView1_CellClick(object sender,
    DataGridViewCellEventArgs e)
{
      DataGridViewCell selectedEmployeeCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]; //Get whatever data you're sending from this to the new form

      Employee tempEmployee = getEmployee(selectedEmployeeCell);

      Form2 updateEmp = new Form2(tempEmployee, this);
      updateEmp.showDialog();
}

在Form2中

    public Form2(Employee emp, Form1 parent)
    {
        //blah blah blah
    }

 private void UpdateEmployee(Employee emp)
{
    parent.UpdateEmployee(emp);
}      

答案 1 :(得分:0)

我尝试远离使用网格视图的向导数据源。我会手动编码网格,然后使用第一个网格的编辑行中的按钮将网址中的变量传递给第二个网格。或者在您的情况下,可能是第一个网格的选定行事件。