Вам нужно выделить конвертер. По каждому объекту вы можете использовать:
[TypeConverter(typeof(DateTimeConverterEx))]
public DateTime Foo {get {...} set {...}}
Это будет работать для использования формы:
var prop = TypeDescriptor.GetProperties(obj)["Foo"];
var converter = prop.Converter;
// as before, using "converter"
Это будет работать для большинства распространенных сценариев связывания.
( 1010 * редактировать *)
Чтобы установить конвертер для любой DateTime
:
TypeDescriptor.AddAttributes(typeof(DateTime),
new TypeConverterAttribute(typeof(DateTimeConverterEx)));
Теперь ваш пример кода должен работать.