2013-04-11 3 views
1

У меня есть CustomTaskPane, который я добавил в Microsoft Outlook 2013. Эта панель содержит элемент управления календаря WPF, который при двойном щелчке я хотел бы, чтобы он переключился с текущего вида Outlook (Mail) на календарь просмотреть и перейти к дате, выбранной в элементе управления.Переключить в 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; 
} 

Однако, когда я дважды нажмите на дату код называется (проверено с точки останова), но, кажется, не имеют никакого влияния на перспективы вообще. Какие-либо предложения?

ответ

1

Обязательно позвоните Apply(), чтобы посмотреть текущее представление для Folder. Вам также необходимо назначить CurrentFolder в Календарь.

calView.Apply(); // applies the view 
explorer.CurrentFolder = Globals.ThisAddIn.Application.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar); // changes current folder 
Смежные вопросы