Strange.
I see the same behavior. So I bound a textbox to the datetime column. Same thing: whatever value I entered, it wasn't set to the property, the property setter was never called. So I set a breakpoint in the propertydescriptor SetValue method, it was never called.
When I bound the textbox to a textfield, it worked.
The datetime never worked.
So I set up the databinding at design time: added a collection to the form, added a bindingsource, set the datasource of the bindingsourec to the collection, set the datasource of the grid to the bindingsource, set the textbox' text property to the bindingsource.requireddate property and the datetime picker value property to the bindingsource.shippeddate property.
And then it worked. I was pretty stumped why it didn't work when I set up the databinding in code.
Then I checked out the generated code by VS.NET:
this._theDatePicker.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.bindingSource1, "ShippedDate", true));
So I removed the design time binding of the datetime picker and used that line in code. Notice the 'true' value.
It worked!
Strange though, but databinding is one big pile of misery sometimes anyway, so I'm not surprised...