Я думаю, что лучшим решением является использование встроенного флажка, который сообщает пользователю, указано или нет значение.
Установить свойство элемента управления ShowCheckBox = true
Когда вы привязываете значение к нему, делайте что-то вроде
if (value == DateTime.MinValue) {
datePicker.Checked = false;
} else {
datePicker.Checked = true;
datePicker.Value = value;
}
При считывании значения проверьте свойство Checked
.
Если вам не нравится отображаемое значение, когда оно не отмечено, вы можете объединить его с другими предложениями.
if (!datePicker.Checked) {
// hide date value since it's not set
datePicker.CustomFormat = " ";
datePicker.Format = DateTimePickerFormat.Custom;
} else {
datePicker.CustomFormat = null;
datePicker.Format = DateTimePickerFormat.Long; // set the date format you want.
}