Home > Net >  Change current DataRowView to a specific DataRowView
Change current DataRowView to a specific DataRowView

Time:03-16

I would like to change the current DataRowView to a specific line, so I can set the value where I want to.

public void SetTimeFromTimer(DateTime date, string timeFromTimer)
{
     monthCalendar1.SetDate(date);
     dataGridView1.ClearSelection();
     dataGridView1.Rows[1].Selected = true;
     DataRowView rowView = (DataRowView)BindingContext[repTimeTable].Current;
     rowView["zr"] = timeFromTimer;
}

CodePudding user response:

public void SetTimeFromTimer(DateTime date, string timeFromTimer)
{
  monthCalendar1.SetDate(date);
  dataGridView1.ClearSelection();
  int rowIndex = repTimeTable.Rows.IndexOf(repTimeTable.Select($"zraufnr = '{GetProjectNumber}' AND zrpnr = '{GetPersonalNumber}'")[0]);
  if (!string.IsNullOrEmpty(rowIndex.ToString()))
  {
    dataGridView1.CurrentCell = dataGridView1.Rows[rowIndex].Cells[ColumnZrZeit.Index];
    DataRowView rowView = (DataRowView) BindingContext[repTimeTable].Current;
    rowView["zr"] = timeFromTimer;
  }
}

CodePudding user response:

You would have to loop through each column and assign the value of the current cell to the desired row's cell. The following code can help you.

public void ChangeRowValues(int parentRow, int rowToBeChanged)
    {
        for (int i = 0; i < dataGridView.Columns.Count; i  )
        {
            dataGridView.Rows[rowToBeChanged].Cells[i].Value = 
            dataGridView.Rows[parentRow].Cells[i].Value;
        }
    }
  • Related