internal void SetKeyValues(DataKey key, object[] keyValues)
{
bool fFirstCall = true;
bool immediate = (_tempRecord == -1);
for (int i = 0; i < keyValues.Length; i++)
{
object value = this[key.ColumnsReference[i]];
if (!value.Equals(keyValues[i]))
{
if (immediate && fFirstCall)
{
fFirstCall = false;
BeginEditInternal();
}
this[key.ColumnsReference[i]] = keyValues[i];
}
}
if (!fFirstCall)
{
EndEdit();
}
}