在UWP中设置CalendarDatePicker的有效日期列表

时间:2017-01-02 11:18:26

标签: c# calendar uwp win-universal-app

我有一个带有CalendarDatePicker的UWP应用程序。当我点击日历时,我打电话给WebService,给我一个“有效日期”列表。我需要使用此“有效日期”列表限制日历,以便只选择日期,设置有效日期或禁用“无效日期”。

如果无法禁用它们,则以某种方式(粗体或划掉的)标记有效日期(或无效日期)就足够了。

我见过MinDate和MaxDate,但这只允许我设置范围,而不是特定日期列表。

我如何限制CalendarDatePicker中的“有效”日期?

1 个答案:

答案 0 :(得分:5)

您需要通过%like%事件处理此问题;没有MVVM友好的可绑定属性来指定有效日期。

CalendarViewDayItemChanging
<CalendarDatePicker CalendarViewDayItemChanging="onCalendarViewDayItemChanging"/>

Screenshot

与往常一样,如果您想重复使用此功能,可以将其转换为附加属性(可能是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); } )或行为。