private DataRowChangeEventArgs RaiseRowChanging(DataRowChangeEventArgs args, DataRow eRow, DataRowAction eAction)
{
if (UpdatingCurrent(eRow, eAction) && (IsTypedDataTable || (null != _onRowChangingDelegate)))
{
eRow._inChangingEvent = true;
// don't catch
try
{
args = OnRowChanging(args, eRow, eAction);
}
finally
{
eRow._inChangingEvent = false;
}
}
// check if we deleting good row
else if (DataRowAction.Delete == eAction && eRow._newRecord != -1 && (IsTypedDataTable || (null != _onRowDeletingDelegate)))
{
eRow._inDeletingEvent = true;
// don't catch
try
{
if (null == args)
{
args = new DataRowChangeEventArgs(eRow, eAction);
}
OnRowDeleting(args);
}
finally
{
eRow._inDeletingEvent = false;
}
}
return args;
}