How to validate at (datagrid) cell entry time

To meet the requirements of my scenario, I need to validate any changes made to the Radzen datagrid immediately using complex business rules. This validation process should be triggered when the user enters data in a cell. If the entered data is invalid, I need to display an error message, restore the original value, and activate the cell.

However, I have not been able to locate where the grid keeps the updated value. I have observed that when I programmatically change rows, the changed value is stored in the bound TItem.

To achieve what I need for my scenario, I plan to create a copy of the bound TItem and the current bound value (pre-change) in local variables in the keydown event handler. When the user presses a terminating key, I will execute the grid's changerow, validate the information, and if it's not valid, (1) issue an error message, (2) restore the (locally saved) value to the locally saved TItem, and then
(3) change back to that TItem.

Although this method works, it's not very efficient. Therefore, I am curious if anyone has found a better way to proceed. If you have any suggestions or insights on this matter, I would greatly appreciate it.