可以使用BlackoutDates
財產,但在這個解決方案必須指定DisplayDateStart
和DisplayDateEnd
。
BlackoutDates
是無法選擇的日期的集合(msdn)。
例子:
<DatePicker x:Name="datePicker"
Loaded="datePicker_Loaded"
DisplayDateStart="2000/01/01"
DisplayDateEnd="2050/01/01"
/>
Loaded事件處理:
private void datePicker_Loaded(object sender, RoutedEventArgs e)
{
DatePicker picker = sender as DatePicker;
if (picker.DisplayDateStart == null || picker.DisplayDateEnd == null) return;
picker.BlackoutDates.Clear();
DateTime start = picker.DisplayDateStart.Value;
DateTime end = picker.DisplayDateEnd.Value;
while (start <= end)
{
if (!availableDates.Contains(start))
{
picker.BlackoutDates.Add(new CalendarDateRange(start, start));
}
start = start.AddDays(1);
}
}
收集可用日期:
List<DateTime> availableDates = new List<DateTime>
{
new DateTime(2013, 03, 01),
new DateTime(2013, 03, 02),
new DateTime(2013, 03, 03),
new DateTime(2013, 03, 31),
new DateTime(2013, 02, 01),
new DateTime(2013, 02, 02),
new DateTime(2013, 05, 01),
new DateTime(2013, 05, 02)
};
會不會使用日期選取的是在這種情況下混亂。難道你不能用簡單的下拉列表/組合? – 2013-03-03 14:46:31