Usually the target (control) updates the source (the bound dataitem).
Errors occuring on the way from target to source are automatically added to the Validation.Errors collection
(in "default" binding settings). That's why the error template shows up when editing manually.
If the update of the source occurs through a background thread the bindings validation
mechanism isn't automatically triggered or notified afaics (see Remarks section of
Validation.Error)
Maybe it helps to set the bindings NotifyOnErrror flag to true (Likely not, however...)
Otherwise you could explicitly invalidate the binding using the
MarkInvalid method.
Chris