2013-04-11 2 views
1

J'ai un CustomTaskPane que j'ai ajouté à Microsoft Outlook 2013. Ce volet comprend un contrôle WPF Calendar qui, lorsqu'on double-clique, je voudrais qu'il passe de l'affichage Outlook courant (Mail) au calendrier afficher et aller à la date sélectionnée dans le contrôle.Passer au calendrier Outlook en utilisant VSTO

Voici le code que je utilise:

private void TopCalendar_MouseDoubleClick(object sender, MouseButtonEventArgs e) 
{ 
    CalendarView calView = null; 
    Explorer explorer; 
    DateTime goToDate = (TopCalendar.SelectedDate.HasValue) ? TopCalendar.SelectedDate.Value : DateTime.Today; 

    explorer = Globals.ThisAddIn.Application.ActiveExplorer(); 
    Views views = Globals.ThisAddIn.Application.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar).Views; 

    foreach(View v in views) 
     if (v.Name == "Calendar") 
     { 
      calView = (CalendarView)v; 
      break; 
     } 

    calView.CalendarViewMode = OlCalendarViewMode.olCalendarViewMonth; 
    calView.GoToDate(goToDate); 
    explorer.CurrentView = calView; 
} 

Cependant, quand je double clique sur une date du code est appelé (vérifié avec point d'arrêt), mais semble avoir aucun effet sur les perspectives du tout. Aucune suggestion?

Répondre

1

Assurez-vous d'appeler Apply() pour afficher la vue actuelle du Folder. Vous devez également affecter le CurrentFolder au calendrier.

calView.Apply(); // applies the view 
explorer.CurrentFolder = Globals.ThisAddIn.Application.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar); // changes current folder 
Questions connexes