我有两个日期选择器:“dpInputDate”和“dpDueDate”。现在DueDate不得小于InputDate。所以我使用了BlackoutDates.AddDatesInPast();并且它在应用程序启动时工作正常。现在,当我更改dpInputDate的选定日期时,dpDueDate会自动获得相同的值。问题是被涂黑的日期数量保持不变。这是我使用的代码:
private void dpInputDate_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
dpDueDate.SelectedDate = dpInputDate.SelectedDate;
dpDueDate.BlackoutDates.Clear();
dpDueDate.BlackoutDates.AddDatesInPast();
}
如何管理?
更新
private void dpDueDate_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
if (dpDueDate.SelectedDate != null)
{
DateTime date = (DateTime)dpDueDate.SelectedDate;
dpDueDate.BlackoutDates.Clear();
dpDueDate.BlackoutDates.Add(new CalendarDateRange(new DateTime(1 / 1 / 2001), date));
}
else
{
dpDueDate.BlackoutDates.AddDatesInPast();
}
}
答案 0 :(得分:2)
AddDatesInPast()
阻止DateTime.Now
(即今天)的所有日期,而不是SelectedDate
向后。
因此,您需要计算自己的CalendarDateRange
,并将BlackoutDates设置为新范围。
有一个重载需要两个日期,您可以将它们用于您的目的
http://msdn.microsoft.com/en-us/library/cc672700(v=vs.110).aspx