Working with DataForm I found difficult to use it in many scenarios due to its design. So I've created a control where I do not generate fields but I handle automatic validation and cancel/commit commands enabling also the usage of the control in mvvm scenarios. This is a good starting point to understand about Validation, BindingExpressions and traversing the visual tree.
-----
The first time I've met the DataForm control - it was some days after its beta release in the Silverlight Toolkit - I was really astounded from its power. It is capable of many wonders: it generates fields detecting the properties of the binded item, it automatically validates the input values using a bunch of attributes in a way similar to ASP.NET Dynamic Data, it manages the workflow passing through Edit, ReadOnly and Insert state, and these are only a small subset of the features it exposes.
Read part 2 of this article series called: A simplified DataForm replacement - Part 2 Adding validation support