internal void EvaluateExpressions()
{
// evaluates all expressions for all rows in table
// this improves performance by only computing expressions when they are present
// and iterating over the rows instead of computing their position multiple times
if ((null != _dependentColumns) && (0 < _dependentColumns.Count))
{
foreach (DataRow row in Rows)
{
// only evaluate original values if different from current.
if (row._oldRecord != -1 && row._oldRecord != row._newRecord)
{
EvaluateDependentExpressions(_dependentColumns, row, DataRowVersion.Original, null);
}
if (row._newRecord != -1)
{
EvaluateDependentExpressions(_dependentColumns, row, DataRowVersion.Current, null);
}
if (row._tempRecord != -1)
{
EvaluateDependentExpressions(_dependentColumns, row, DataRowVersion.Proposed, null);
}
}
}
}