我正在使用WPF和MVVM实现,并且有一个WPF DatePicker控件。我已使用DateTime.Now在我的属性上设置了默认日期,但我想禁用DatePicker控件上当前日期之前的所有日期,以便用户无法选择任何更早的日期。
我尝试在我的SelectedDate属性中使用FallbackValue = {x:Static sys:DateTime.Now}在xaml中设置此项,并在大多数其他属性中使用{x:Static sys:DateTime.Now}(来自其他来源) )但是当前日期之前的日期仍然显示并仍然可以选择。
有没有一种简单的方法可以实现这一目标?
答案 0 :(得分:4)
也许您正在寻找BlackoutDates属性?
以下是使用DatePicker控件(包括BlackoutDates)的更多信息:
WPF Toolkit: Calendar & DatePicker Walkthrough
例如,如果您想将停电日期从1/1/2000设置为现在,您可以执行以下操作:
<Calendar.BlackoutDates>
<CalendarDateRange Start="1/1/2000" End="{x:Static System:DateTime.Today}" />
</Calendar.BlackoutDates>
将System命名空间定义为
xmlns:System="clr-namespace:System;assembly=mscorlib"
答案 1 :(得分:4)
您可以使用DisplayDateStart和DisplayDateEnd属性来选择应在控件中显示的日期,或者如果您想要更复杂的内容,可以使用BlackOutDates准确选择您所关注的日期不想选择。
答案 2 :(得分:0)
CalendarDateRange cdr = new CalendarDateRange(DateTime.MinValue,DateTime.Today); myCalendar.BlackoutDates.Add(CDR);
答案 3 :(得分:0)
您可以使用
MyDatePicker.BlackoutDates.AddDatesInPast();