I'm reading in values from several TimePickers that may or may not be null. SelectedTime.Value throws the mentioned error when the value is a null and using DbSelectedDate with a (TimeSpan?) cast is invalid. Currently I'm accepting it as a (DateTime?) instead and breaking it down in an extra step. Is there a more elegant solution or is this the standard practice?