Car*_*sTI 1 c# calendar win-universal-app uwp
我有一个带有CalendarDatePicker的UWP应用程序.当我点击日历时,我打电话给WebService,给我一个"有效日期"列表.我需要使用此"有效日期"列表限制日历,以便只选择日期,设置有效日期或禁用"无效日期".
如果无法禁用它们,则以某种方式(粗体或划掉的)标记有效日期(或无效日期)就足够了.
我见过MinDate和MaxDate,但这只允许我设置一个范围,而不是特定日期的列表.
我如何限制CalendarDatePicker中的"有效"日期?
你需要通过这个CalendarViewDayItemChanging事件处理这件事; 没有MVVM友好的可绑定属性来指定有效日期.
<CalendarDatePicker CalendarViewDayItemChanging="onCalendarViewDayItemChanging"/>
Run Code Online (Sandbox Code Playgroud)
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);
}
Run Code Online (Sandbox Code Playgroud)
与往常一样,ValidDates如果要重用此功能,可以将其转换为附加属性(可能)或行为.