There seems to be some bug in isValid:
isValid is true before the field validators fire.
Take the DataGrid from the Inline Editing Demo and replace SaveRow() with this code:
async Task SaveRow(Account d)
{
if (grid.IsValid)
{
await grid.UpdateRow(d);
if (d.Id > 0)
{
Console.WriteLine("API Update");
}
else
{
Console.WriteLine("API Insert");
}
}
}
When you click the edit button, the console immediately says "API Insert", before the user is able to enter some data.
When the fields are filled in and validation fails, SaveAccount() does nothing as expected.
Maybe adding a setter to isValid, might be a good solution, so the grid can manually invalidated in the button click event, before SaveRow() is called.