Как найти даты, отображаемые в элементе управления Silverlight Calendar? - PullRequest
0 голосов
/ 09 октября 2009

У меня есть приложение Silverlight, которое содержит элемент управления календаря.Я хочу «затемнить» дни, для которых у нас нет доступных данных, используя свойство BlackoutDates.

Поэтому я ищу простой способ найти все даты, которые в настоящее время видны (при условииМесяц просмотра, на данный момент).Я могу использовать метод грубой силы, скажем, принимая первый день месяца минус семь дней до последнего дня месяца плюс семь дней, но кто-нибудь может предложить более чистый метод?

Ответы [ 2 ]

2 голосов
/ 09 октября 2009

Сколько стоит операция, чтобы узнать, какие даты не имеют данных?

Если это дешево, просто установите свойство BlackoutDates со всеми датами текущего видимого месяца и месяцами по обе стороны, позвольте календарю беспокоиться о том, какие из них видимы, а какие нет.

0 голосов
/ 14 октября 2009

Другое решение состоит в том, чтобы отреагировать на событие SelectedDatesChanged, чтобы отклонить выбор конкретной даты, например, даты, которые выпадают на выходные:

private void Calendar_SelectedDatesChanged (отправитель объекта, CalendarDateChangedEventArgs e)
{
// Проверьте все вновь добавленные элементы.
foreach (DateTime selectedDate в e.AddedItems)
{
if ((selectedDate.DayOfWeek == DayOfWeek.Saturday) || (selectedDate.DayOfWeek == DayOfWeek.Sunday))
{
lblError.Text = "Выходные не допускаются";
// Удалить выбранную дату. ((Календарь) отправитель) .SelectedDates.Remove (SelectedDate);
}
}
}

...