SelectedDatesCollection Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Represents a set of selected dates in a Calendar.
public ref class SelectedDatesCollection sealed : System::Collections::ObjectModel::ObservableCollection<DateTime>
public sealed class SelectedDatesCollection : System.Collections.ObjectModel.ObservableCollection<DateTime>
type SelectedDatesCollection = class
inherit ObservableCollection<DateTime>
Public NotInheritable Class SelectedDatesCollection
Inherits ObservableCollection(Of DateTime)
- Inheritance
Examples
The following example creates a Calendar that has multiple ranges of dates selected.
// Create a Calendar that displays dates through
// Januarary 31, 2009 and has dates that are not selectable.
Calendar calendarWithBlackoutDates = new Calendar();
calendarWithBlackoutDates.IsTodayHighlighted = false;
calendarWithBlackoutDates.DisplayDate = new DateTime(2009, 1, 1);
calendarWithBlackoutDates.DisplayDateEnd = new DateTime(2009, 1, 31);
calendarWithBlackoutDates.SelectionMode = CalendarSelectionMode.MultipleRange;
// Add the dates that are not selectable.
calendarWithBlackoutDates.BlackoutDates.Add(
new CalendarDateRange(new DateTime(2009, 1, 2), new DateTime(2009, 1, 4)));
calendarWithBlackoutDates.BlackoutDates.Add(
new CalendarDateRange(new DateTime(2009, 1, 9)));
calendarWithBlackoutDates.BlackoutDates.Add(
new CalendarDateRange(new DateTime(2009, 1, 16)));
calendarWithBlackoutDates.BlackoutDates.Add(
new CalendarDateRange(new DateTime(2009, 1, 23), new DateTime(2009, 1, 25)));
calendarWithBlackoutDates.BlackoutDates.Add(
new CalendarDateRange(new DateTime(2009, 1, 30)));
// Add the selected dates.
calendarWithBlackoutDates.SelectedDates.Add(
new DateTime(2009, 1, 5));
calendarWithBlackoutDates.SelectedDates.AddRange(
new DateTime(2009, 1, 12), new DateTime(2009, 1, 15));
calendarWithBlackoutDates.SelectedDates.Add(
new DateTime(2009, 1, 27));
// root is a Panel that is defined elswhere.
root.Children.Add(calendarWithBlackoutDates);
' Create a Calendar that displays dates through
' Januarary 31, 2009 and has dates that are not selectable.
Dim calendarWithBlackoutDates As New Calendar()
calendarWithBlackoutDates.IsTodayHighlighted = False
calendarWithBlackoutDates.DisplayDate = New DateTime(2009, 1, 1)
calendarWithBlackoutDates.DisplayDateEnd = New DateTime(2009, 1, 31)
calendarWithBlackoutDates.SelectionMode = CalendarSelectionMode.MultipleRange
' Add the dates that are not selectable.
calendarWithBlackoutDates.BlackoutDates.Add(New CalendarDateRange(New DateTime(2009, 1, 2), New DateTime(2009, 1, 4)))
calendarWithBlackoutDates.BlackoutDates.Add(New CalendarDateRange(New DateTime(2009, 1, 9)))
calendarWithBlackoutDates.BlackoutDates.Add(New CalendarDateRange(New DateTime(2009, 1, 16)))
calendarWithBlackoutDates.BlackoutDates.Add(New CalendarDateRange(New DateTime(2009, 1, 23), New DateTime(2009, 1, 25)))
calendarWithBlackoutDates.BlackoutDates.Add(New CalendarDateRange(New DateTime(2009, 1, 30)))
' Add the selected dates.
calendarWithBlackoutDates.SelectedDates.Add(New DateTime(2009, 1, 5))
calendarWithBlackoutDates.SelectedDates.AddRange(New DateTime(2009, 1, 12), New DateTime(2009, 1, 15))
calendarWithBlackoutDates.SelectedDates.Add(New DateTime(2009, 1, 27))
' root is a Panel that is defined elswhere.
root.Children.Add(calendarWithBlackoutDates)
<!-- Create a Calendar that displays dates through
Januarary 31, 2009 and has dates that are not selectable. -->
<Calendar Margin="20" SelectionMode="MultipleRange"
IsTodayHighlighted="false"
DisplayDate="1/1/2009"
DisplayDateEnd="1/31/2009"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<Calendar.BlackoutDates>
<CalendarDateRange Start="1/2/2009" End="1/4/2009"/>
<CalendarDateRange Start="1/9/2009" End="1/9/2009"/>
<CalendarDateRange Start="1/16/2009" End="1/16/2009"/>
<CalendarDateRange Start="1/23/2009" End="1/25/2009"/>
<CalendarDateRange Start="1/30/2009" End="1/30/2009"/>
</Calendar.BlackoutDates>
<Calendar.SelectedDates>
<sys:DateTime>1/5/2009</sys:DateTime>
<sys:DateTime>1/12/2009</sys:DateTime>
<sys:DateTime>1/14/2009</sys:DateTime>
<sys:DateTime>1/13/2009</sys:DateTime>
<sys:DateTime>1/15/2009</sys:DateTime>
<sys:DateTime>1/27/2009</sys:DateTime>
<sys:DateTime>4/2/2009</sys:DateTime>
</Calendar.SelectedDates>
</Calendar>
Remarks
Dates can be added to the SelectedDates property of a Calendar. Depending on the value of the Calendar.SelectionMode property, adding a date or a range to the SelectedDatesCollection may cause it to be cleared. The following table lists how CalendarSelectionMode affects the SelectedDates property.
| CalendarSelectionMode | Effect on SelectedDates |
|---|---|
| None | No selections are allowed. SelectedDate cannot be set and no values can be added to SelectedDates. |
| SingleDate | Only a single date can be selected, either by setting SelectedDate or the first value in SelectedDates. AddRange cannot be used. |
| SingleRange | A single range of dates can be selected. Setting SelectedDate, adding a date individually to SelectedDates, or using AddRange will clear all previous values from SelectedDates. |
| MultipleRange | Multiple non-contiguous ranges of dates can be selected. Adding a date individually to SelectedDates or using AddRange will not clear SelectedDates. Setting SelectedDate will still clear SelectedDates, but additional dates or ranges can then be added. Adding a range that includes some dates that are already selected or overlaps with another range results in the union of the ranges and does not cause an exception. |
Constructors
| Name | Description |
|---|---|
| SelectedDatesCollection(Calendar) |
Initializes a new instance of the SelectedDatesCollection class. |
Methods
| Name | Description |
|---|---|
| AddRange(DateTime, DateTime) |
Adds all the dates in the specified range, which includes the first and last dates, to the collection. |