C# 使用VSTO切换到Outlook日历

C# 使用VSTO切换到Outlook日历,c#,outlook,vsto,outlook-addin,outlook-2013,C#,Outlook,Vsto,Outlook Addin,Outlook 2013,我有一个已添加到Microsoft Outlook 2013的CustomTaskPane。此窗格包含一个WPF日历控件,双击该控件时,我希望它从当前Outlook视图(邮件)切换到日历视图,并转到控件中选择的日期 以下是我正在使用的代码: private void TopCalendar_MouseDoubleClick(object sender, MouseButtonEventArgs e) { CalendarView calView = null; Explorer

我有一个已添加到Microsoft Outlook 2013的CustomTaskPane。此窗格包含一个WPF日历控件,双击该控件时,我希望它从当前Outlook视图(邮件)切换到日历视图,并转到控件中选择的日期

以下是我正在使用的代码:

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没有任何影响。有什么建议吗?

请确保您拨打电话,使该视图成为
文件夹的当前视图。您还需要将分配给日历

calView.Apply();//应用视图
explorer.CurrentFolder=Globals.ThisAddIn.Application.GetNamespace(“MAPI”).GetDefaultFolder(OlDefaultFolders.olFolderCalendar);//更改当前文件夹