【发布时间】:2009-10-08 21:44:32
【问题描述】:
我有一个包含日历控件的 Silverlight 应用程序。我想使用 BlackoutDates 属性“关闭”我们没有可用数据的日子。
所以我正在寻找一种简单的方法来查找当前可见的所有日期(假设现在是月视图)。我可以使用蛮力方法,例如将当月的第一天减去 7 天到当月的最后一天加上 7 天,但是有人可以提出更简洁的方法吗?
【问题讨论】:
标签: silverlight controls
我有一个包含日历控件的 Silverlight 应用程序。我想使用 BlackoutDates 属性“关闭”我们没有可用数据的日子。
所以我正在寻找一种简单的方法来查找当前可见的所有日期(假设现在是月视图)。我可以使用蛮力方法,例如将当月的第一天减去 7 天到当月的最后一天加上 7 天,但是有人可以提出更简洁的方法吗?
【问题讨论】:
标签: silverlight controls
找出哪些日期没有数据对您来说有多昂贵?
如果便宜的话,只需将 BlackoutDates 属性设置为当前可见月份的所有日期以及两侧月份的所有日期,让日历担心哪些是可见的,哪些是不可见的。
【讨论】:
另一个解决方案是对 SelectedDatesChanged 事件做出反应以拒绝特定的日期选择,
例如周末的日期:
private void Calendar_SelectedDatesChanged(对象发送者,
CalendarDateChangedEventArgs e)
{
// 检查所有新添加的项目。
foreach(e.AddedItems 中的 DateTime selectedDate)
{
if ((selectedDate.DayOfWeek == DayOfWeek.Saturday) ||
(selectedDate.DayOfWeek == DayOfWeek.Sunday))
{
lblError.Text = "周末不允许";
// 删除选定的日期。
((日历)发件人).SelectedDates.Remove(selectedDate);
}
}
}
【讨论】: