cómo administrar el valor de conteo cuando se elimina o agrega un elemento

Hi i am new to programming in c# wpf i just need to create a datagrid of some details i made it and the one major task is the while adding the serial number will be incremented as 1,2,3,4,etc.as when i remove an record from the datagrid the serial number to rearrange according to it eg:sno:1,2,3,4,5,6. after removing the 3rd row it should be 1,2,3,4,5 instaed of 1,2,4,5,6. similarly for inserting a row between 1,2,3 after adding it should be 1,2,3,4 task is row nust be added between 2 and 3 the new row help need

       void mbtninsertstep_Click(object sender, RoutedEventArgs e) {
     int rowindex = mdatagridedit.Items.IndexOf(mdatagridedit.CurrentCell);
     if (rowindex >= 0) {
        int rowcount = programtable.Rows.Count;
        msteps.Add(new Steps { mStepno = count, mPosition = "0", 
                            mRepeat = "NONE", mCount = "1", mAftercut = "NONE" });
        int p = rowindex + 1;
        for (int i = 0; i < rowcount + 1; i++) {
           programtable.Rows[i][0] = p++;
        } edited = true;
     }
  }

delete button code

insert button code.

void mbtndeletestep_Click(object sender, RoutedEventArgs e) 
{
     int deleterow;
     DataGridView dg = new DataGridView();
    // msteps.Remove((Steps)mdatagridedit.SelectedItem);
     int rowindex = dg.CurrentRow.Index;
     if (rowindex >= 0) {
        int rowcount = programtable.Rows.Count;

        int temp = dg.CurrentCell.RowIndex;
        programtable.Rows.RemoveAt(temp);
        int p = temp + 1;
        for (int i = rowindex; i < rowcount - 1; i++) {
           programtable.Rows[i][0] = p++;
        }
        int RowCountAfterDeleting = programtable.Rows.Count;
     }

     //int p = mdatagridedit.Items.Count;
     // if (mdatagridedit.SelectedItem == null) {
     //    System.Windows.Forms.MessageBox.Show("Select an row");
     // } else {
     //msteps.RemoveAt(mdatagridedit.SelectedIndex);
     //int p = mdatagridedit.SelectedIndex + 1;
     //    for(int i = mdatagridedit.SelectedIndex;
                   i < mdatagridedit.Items.Count - 1; i++){
     //       Steps step = new Steps();
     //       step.mStepno = p - 1;
     //    } int p1 = programtable.Rows.Count;
     //}
  }  

preguntado el 12 de junio de 14 a las 10:06

simply counting the available rows could solve your issue. Could you point where in the code you face the issue? -

int rowindex = dg.CurrentRow.Index; throwing null reference exception -

the issue is after deleting the CurrentRow become null, so you get null reference while accessing Index for it. I would suggest you to bind your program table to datagrid. so after deletion you may simply use programtable.Rows.Count. more info on binding here stackoverflow.com/questions/20770438/… -

@pushpraj, can you please add your comment into an answer (perhaps with a little more information) so that the question author can mark this question as accepted? -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.