internal static bool IsValidDateSelection(Calendar cal, object value) { if (value == null) { return true; } else { if (cal.BlackoutDates.Contains((DateTime)value)) { return false; } else { if (DateTime.Compare((DateTime)value, cal.DisplayDateRangeStart) < 0) { cal.SetValueNoCallback(Calendar.DisplayDateStartProperty, value); } else if (DateTime.Compare((DateTime)value, cal.DisplayDateRangeEnd) > 0) { cal.SetValueNoCallback(Calendar.DisplayDateEndProperty, value); } return true; } } }