Outlook VSTO AddIn。根据在 AppointmentItem.Body 中输入的文本更新 RibbonBar。

问题描述 投票:0回答:1

我正试图根据用户在 AppointmentItem.Body中输入的文本更新我的自定义Ribbon.我有2个问题无法解决:1.)我找不到一个当用户在 AppointmentItem的Body中输入文本时可靠地触发的事件。恐怕没有任何事件可以让我订阅。正确吗,AppPropertyChange不起作用。

2.) 我明白Ribbon有一个链接到ThisAddIn实例。但在正确的架构中,不应该有一个从ThisAddIn到Ribbon的引用。因此,即使我设法在ThisAddIn中找到正确的事件处理,我也无法在Ribbon上调用InvalidateUI,因为我没有与Ribbon实例的链接。对不对?

vsto outlook-addin
1个回答
0
投票

对于你的问题1)

我认为没有事件监听到keydown或其他的东西,以 AppointmentItem.Body. 你就不能把逻辑反过来吗?这样在点击功能区按钮后,你就可以检查预约中的内容了?

对于你的问题2)

解决办法是让Ribbon约 Globals. 确保你能接触到色带,并观看。这个问题在stackoverflow上

public partial class ThisAddIn {

  Explorer activeExplorer;

  private void ThisAddIn_Startup(object sender, EventArgs e) {
    this.activeExplorer = this.Application.ActiveExplorer();
    this.activeExplorer.ViewSwitch += new ExplorerEvents_10_ViewSwitchEventHandler(this.ViewSwitch);
  }

  private void ViewSwitch() {
    bool isActive = false;

    try {
      Globals.Ribbons.CalendarRibbon.GroupCalendar.Visible = isActive;
      Globals.Ribbons.CalendarRibbon.ButtonCalendarSync.Visible = isActive;
    } catch (System.Exception ex) {
      // ... catch the exception
    }
  }

}
© www.soinside.com 2019 - 2024. All rights reserved.