Hola, bueno despues de mucho sufrir, encontré la forma de hacer la comparación que necesitaba. tal vez no sea la mas ortodoxa pero igual la comparto por si alguien le sirve:
Código:
private void dataGridView2_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
bool existe=false;
// para verificar si la factura existe en el DataGridView1
if (e.ColumnIndex == 1)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells["colFactura"].Value.ToString() == e.FormattedValue.ToString())
{
existe = true;
break;
}
}
if (!existe && !String.IsNullOrEmpty(e.FormattedValue.ToString()))
{
e.Cancel = true;
dataGridView2.Rows[e.RowIndex].ErrorText = "Factura no existe";
}
}
}
private void dataGridView2_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dataGridView2.IsCurrentCellDirty)
{
dataGridView2.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}