SelectedDateChanged上的WPF datepicker BlackoutDates

时间:2014-01-14 10:35:06

标签: c# wpf datepicker

我有两个日期选择器:“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();
        }
    }

1 个答案:

答案 0 :(得分:2)

AddDatesInPast()阻止DateTime.Now(即今天)的所有日期,而不是SelectedDate向后。

因此,您需要计算自己的CalendarDateRange,并将BlackoutDates设置为新范围。 有一个重载需要两个日期,您可以将它们用于您的目的 http://msdn.microsoft.com/en-us/library/cc672700(v=vs.110).aspx