DatePicker.DateValidationError Event
Occurs when Text is set to a value that cannot be interpreted as a date or when the date cannot be selected.
Assembly: PresentationFramework (in PresentationFramework.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
After the DateValidationError event occurs, if you set the DatePickerDateValidationErrorEventArgs.ThrowException property to true, one of the following exceptions is raised:
Exception type | Condition |
|---|---|
The text entered cannot be parsed to a valid date, and the exception is not suppressed. | |
The text entered parses to a date that is not selectable. |
The following example creates a DatePicker that displays the dates in August 2009 and specifies that each Saturday and Sunday is not selectable.
DatePicker datePickerWithBlackoutDates = new DatePicker(); datePickerWithBlackoutDates.DisplayDateStart = new DateTime(2009, 8, 1); datePickerWithBlackoutDates.DisplayDateEnd = new DateTime(2009, 8, 31); datePickerWithBlackoutDates.SelectedDate = new DateTime(2009, 8, 10); datePickerWithBlackoutDates.BlackoutDates.Add( new CalendarDateRange(new DateTime(2009, 8, 1), new DateTime(2009, 8, 2))); datePickerWithBlackoutDates.BlackoutDates.Add( new CalendarDateRange(new DateTime(2009, 8, 8), new DateTime(2009, 8, 9))); datePickerWithBlackoutDates.BlackoutDates.Add( new CalendarDateRange(new DateTime(2009, 8, 15), new DateTime(2009, 8, 16))); datePickerWithBlackoutDates.BlackoutDates.Add( new CalendarDateRange(new DateTime(2009, 8, 22), new DateTime(2009, 8, 23))); datePickerWithBlackoutDates.BlackoutDates.Add( new CalendarDateRange(new DateTime(2009, 8, 29), new DateTime(2009, 8, 30))); datePickerWithBlackoutDates.DateValidationError += new EventHandler<DatePickerDateValidationErrorEventArgs>(DatePicker_DateValidationError); // root is a Panel that is defined elsewhere. root.Children.Add(datePickerWithBlackoutDates);
<DatePicker Name="datePickerWithBlackoutDates" DisplayDateStart="8/1/09" DisplayDateEnd="8/31/09" SelectedDate="8/10/09" DateValidationError="DatePicker_DateValidationError"> <DatePicker.BlackoutDates> <CalendarDateRange Start="8/1/09" End="8/2/09"/> <CalendarDateRange Start="8/8/09" End="8/9/09"/> <CalendarDateRange Start="8/15/09" End="8/16/09"/> <CalendarDateRange Start="8/22/09" End="8/23/09"/> <CalendarDateRange Start="8/29/09" End="8/30/09"/> </DatePicker.BlackoutDates> </DatePicker>
The DatePicker handles the DateValidationError event, as shown in the following code. If the user enters a date that is not selectable, the example displays a message. If the user enters text that is not a valid date, an exception is thrown.
// If the text is a valid date, but a part of the // BlackoutDates collection, show a message. // If the text is not a valid date, thow an exception. private void DatePicker_DateValidationError(object sender, DatePickerDateValidationErrorEventArgs e) { DateTime newDate; DatePicker datePickerObj = sender as DatePicker; if (DateTime.TryParse(e.Text, out newDate)) { if (datePickerObj.BlackoutDates.Contains(newDate)) { MessageBox.Show(String.Format("The date, {0}, cannot be selected.", e.Text)); } } else { e.ThrowException = true; } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.