Ok, I'm still missing something.
I'm doing WPF, NET Framework 4.8
I have a DevExpress TextEdit control bound to a string entity field, and I want to validate the string length, as well as a custom validation.
If I use the LlblGen validation, it will validate the length. So I put my custom validation in the IValidator ValidateFieldValue routine, where, if it's invalid, I set the EntityFieldError message and return false. To me, that should set the IDataErrorInfo stuff for this field, the bound DevExpress control should see that, and light up the error icon in the text box. But that doesn't happen. LlblGen doesn't set the IDataErrorInfo if I return False from ValidateFieldValue. It just skips setting the field, changes it back to it's original value, and moves on. I suppose this makes sense, on the data layer, to remove the offending data.
If I use the DevExpress validation (which is done either through Events in the code behind [yuck], or IDataErrorInfo), I can show the error icon with my custom string validation, but I don't have access to the original Entity field metadata, so I don't have access to it's MaxLength and can't put that check in my custom validator.
What would be the best way both a validation on the field data itself, as well as indicate to the control that there's an error on the underlying data?