我有一个包含日历控件的Silverlight应用程序。我想使用BlackoutDates属性“禁止”我们没有可用数据的日子。
所以我正在寻找一种简单的方法来查找当前可见的所有日期(现在假设是月视图)。我可以使用蛮力方法,比如说在一个月的第一天减去七天到一个月的最后一天再加上七天,但是有人可以提出更清洁的方法吗?
答案 0 :(得分:2)
找出哪些日期没有数据的操作有多贵?
如果价格便宜,只需将BlackoutDates属性设置为当前可见月份的所有日期和任意一侧的月份,让日历担心哪些是可见的,哪些不是。
答案 1 :(得分:0)
另一个解决方案是对SelectedDatesChanged事件做出反应以拒绝特定的日期选择,
例如周末的日期:
private void Calendar_SelectedDatesChanged(object sender,
CalendarDateChangedEventArgs e)
{
//检查所有新添加的项目
foreach(e.AddedItems中的DateTime selectedDate)
{
if((selectedDate.DayOfWeek == DayOfWeek.Saturday)||
(selectedDate.DayOfWeek == DayOfWeek.Sunday))
{
lblError.Text =“不允许周末”;
//删除所选日期。
((日历)发送方).SelectedDates.Remove(selectedDate);
}
}
}