¿Cómo agregar una nueva fila a la vista de cuadrícula de datos solo después de llenar celdas específicas de la fila anterior?

Estoy trabajando en una aplicación de escritorio en C # (.NET 4.0). Tengo una vista de cuadrícula de datos llena de objetos personalizados, a través de BindingList personalizada (hereda BindingList) (funcionalidades de clasificación agregadas). Utilizo eventos cellValidating para incrementar correctamente la primera columna (ID) y validar la entrada en otras celdas.

El problema es cuando llego a la nueva fila / última fila e ingreso algo en una celda (incluso puedo eliminar toda la entrada antes de salir de la celda) la vista de cuadrícula de datos agrega automáticamente esta fila a la lista de enlace y crea una nueva fila a continuación. Quiero que la última / nueva fila solo se agregue cuando la fila de arriba (la nueva fila anterior) se complete correctamente.

Ejempl

ID     NAME      PRICE    ...

1      Beer       2.6

2      Cheese      3.3

_      _______     ____      <- empty row

Ahora si hago clic (ingresar), la nueva ID de la fila se establece automáticamente en 3 y si dejo clic en la celda 'Cerveza', la nueva ID de la fila está vacía y todos los valores predeterminados están vacíos (que es la forma en que debería y funciona) . El problema es si si hace clic / ingresa una nueva fila y escribe algo para el nombre (e incluso si elimino el contenido antes de salir de la celda), se agrega una nueva fila debajo de esta fila, que era una nueva fila. Por lo tanto, esta fila se agrega a BindingList y está incompleta, no se debe agregar hasta que todas las celdas requeridas se llenen correctamente (por ejemplo, el precio).

No tengo ni idea de cómo hacer esto. Ayúdenme, soy bastante nuevo en C #.

Gracias por tu tiempo y respuestas.

Respuestas a la pregunta(2)

Su respuesta a la pregunta