您需要通过CalendarViewDayItemChanging
事件处理此事件;没有MVVM友好的可绑定属性来指定有效的日期。
<CalendarDatePicker CalendarViewDayItemChanging="onCalendarViewDayItemChanging"/>
private HashSet<DateTimeOffset> validDates = new HashSet<DateTimeOffset>
{
DateTimeOffset.Parse("04/01/2017"),
DateTimeOffset.Parse("05/01/2017"),
DateTimeOffset.Parse("20/01/2017"),
DateTimeOffset.Parse("06/02/2017"),
};
private void onCalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs e)
{
e.Item.IsBlackout = !validDates.Contains(e.Item.Date.Date);
}
![Screenshot](https://i.stack.imgur.com/GVnrr.png)
与往常一样,如果你想重新使用此功能,您可以转换成一个附加属性(ValidDates
,也许)或行为这一点。
可能重复[如何启用/禁用DateTimePicker winforms c#中的特定日期](http://stackoverflow.com/questions/40059200/how-to-enable-disable-specific-dates-in-datetimepicker-winforms- c-sharp) – Prabu
你可以在uwp中实现同样的变化 – Prabu
真的我不知道在uwp中如何实现同样的功能:我没有MonthCalendar控件,CalendarDatePicker没有大胆的集合,我的日历已经创建时,我需要限制CalendarDatePicker ...是否有更简单的方法来做到这一点? – CarlosTI