Чтобы указать формат, который включает в себя всю точность, вы можете использовать метод String.Format (). Пример, который приводит Джеймс, будет выглядеть так:
String.Format("{0:yyyy-MM-dd HH:mm:ss.ffffff}", ObjectValue);
Я не знаю, что это будет делать, когда вы передадите что-то, что не является датой.
Возможно, более простой подход - добавить специальный случай, когда у вас уже есть объект даты:
public DateTime? DateValue
{
get
{
DateTime value = ObjectValue as DateTime;
if (value != null) return value;
return DateTime.TryParse(ObjectValue.ToString(), out value) ? value : new DateTime?();
}
}