2009-10-08 8 views
0

J'ai une application Silverlight qui contient un contrôle de calendrier. Je veux 'black out' jours pour lesquels nous n'avons pas de données disponibles, en utilisant la propriété BlackoutDates. Donc, je cherche un moyen simple de trouver toutes les dates qui sont actuellement visibles (en supposant une vue mensuelle, pour l'instant). Je peux utiliser une méthode de force brute, disons prendre le premier jour du mois moins sept jours jusqu'au dernier jour du mois plus sept jours, mais quelqu'un peut-il suggérer une méthode plus propre?Comment trouver les dates affichées dans un contrôle Silverlight Calendar?

Répondre

2

Combien coûte une opération pour vous de savoir quelles dates n'ont pas de données?

Si c'est pas cher, il suffit de définir la propriété BlackoutDates avec toutes les dates pour le mois visible actuel et les mois de chaque côté, laissez le calendrier s'inquiéter de ce qui sont visibles et ceux qui ne le sont pas.

0

Une autre solution consiste à réagir à l'événement SelectedDatesChanged de rejeter les sélections de date, telles que les dates qui tombent un week-end:

private void Calendar_SelectedDatesChanged (expéditeur d'objet, CalendarDateChangedEventArgs e)
{
// Vérifiez tous les éléments nouvellement ajoutés.
foreach (DateTime selectedDate en e.AddedItems)
{
if ((selectedDate.DayOfWeek == DayOfWeek.Saturday) || (selectedDate.DayOfWeek == DayOfWeek.Sunday))
{
lblError.Text = "Les week-ends ne sont pas autorisés";
// Supprimer la date sélectionnée. (Expéditeur (Calendrier)) .SelectedDates.Remove (selectedDate);
}
}
}

Questions connexes