2013-04-11 46 views
1

我有一個CustomTaskPane,我已經添加到Microsoft Outlook 2013.此窗格包括一個WPF日曆控件,當雙擊我想它從當前的Outlook視圖(郵件)切換到日曆查看並轉到控件中選擇的日期。切換到Outlook日曆使用VSTO

這裏是我使用的代碼:

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; 
} 

然而,當我在代碼被稱爲迄今爲止雙擊(驗證用的斷點),但似乎對Outlook中沒有任何影響。有什麼建議麼?

回答

1

確保您致電Apply()以使視圖成爲Folder的當前視圖。您還需要將CurrentFolder分配給日曆。

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