我在MVVM实现中使用WPF,并且有一个WPF DatePicker控件。我已经使用DateTime在我的属性上设置了默认日期。现在,但我想禁用DatePicker控件上位于当前日期之前的所有日期,这样用户就无法选择任何更早的日期。
我曾尝试在xaml中使用FallbackValue={x:Static sys:DateTime.Now}在我的SelectedDate属性中设置此项,并在大多数其他属性中使用{x:Static sys:DateTime.Now}(来自另一个源(,但当前日期之前的日期仍然显示并且仍然可选择。
有没有一种简单的方法可以做到这一点?
也许您正在查找BlackoutDates属性?
以下是使用DatePicker控件(包括BlackoutDates(的更多信息:
WPF工具包:日历;DatePicker遍历
例如,如果你想将停电日期从2000年1月1日设置为今天,你可以这样做:
<Calendar.BlackoutDates>
<CalendarDateRange Start="1/1/2000" End="{x:Static System:DateTime.Today}" />
</Calendar.BlackoutDates>
其中系统名称空间定义为
xmlns:System="clr-namespace:System;assembly=mscorlib"
您可以使用DisplayDateStart和DisplayDateEnd属性来选择应该在控件中显示的日期,或者如果您想要更复杂的日期,您可以使用BlackOutDates来选择不希望选择的日期。
CalendarDateRange cdr=新日历日期范围(DateTime.MinValue,DateTime.Tayday(;myCalendar.BlackoutDates.Add(cdr(;
您可以使用
MyDatePicker.BlackoutDates.AddDatesInPast();
请参阅https://msdn.microsoft.com/en-us/library/system.windows.controls.calendarblackoutdatescollection.adddatesinpast(v=vs.110(.aspx