2010-10-22 9 views
2

Je veux fournir à un utilisateur la possibilité de sélectionner un mois \ année J'allais utiliser simplement 2 listes, mais je dis que le calendrier Silverlight avait un mode année, qui affiche les mois d'une année (pas les mois avec tous les journées). Mais lorsque vous cliquez sur un mois, il passe à l'affichage des jours du mois sélectionné (mode mois).Cliquez sur le mois dans le calendrier Silverlight en mode année, obtenir le mois sélectionné et rester en mode année?

J'ai essayé de revenir au mode année dans l'événement SelectedDatesChanged. Mais réalisé que les feux ne se déclenche qu'après que je sélectionne un jour spécifique dans un mois (à quel point il repasse en mode année).

Donc, mes questions: - puis-je obtenir le calendrier pour rester dans le mode année? - Y a-t-il un événement pour le mois sélectionné? - Puis-je même choisir le mois?

grâce

Répondre

2

Il y a un événement DisplayModeChanged qui peut être utilisé. Dans mon cas, j'avais besoin de la première date et de la dernière date du mois sélectionné ... le code ci-dessous fait ce dont j'avais besoin.

private void CalendarDisplayModeChanged(object sender, CalendarModeChangedEventArgs e) 
{  
    //control might be null at start up so check for null 
    //probably could hook up event in Loaded or constructor instead of xaml to prevent this 
    if (calendarInYearMode != null) { 
      //reset back to year mode 
     calendarInYearMode.DisplayMode = CalendarMode.Year; 
     if (calendarInYearMode.DisplayDate != DateTime.MinValue) { 
      var beginningOfMonthDate = calendarInYearMode.DisplayDate; 
      var endOfMonthDate = calendarInYearMode.DisplayDate.AddMonths(1).AddDays(-1);  
     } 
    } 
} 
Questions connexes