【问题标题】:Outlook AppointmentItem.PropertyChange not firing always [closed]Outlook AppointmentItem.PropertyChange 不总是触发[关闭]
【发布时间】:2021-11-03 07:03:39
【问题描述】:

Outlook AppointmentItem.PropertyChange 有时不会触发,但 MailItem.PropertyChange 总是触发。

【问题讨论】:

  • 你使用的实际代码是什么?
  • _propertyChangehandlerSubject = (string str) => { if (str.Equals("ConversationTopic")) { subjectEventHandler(); } };
  • appointmentItem.PropertyChange += _propertyChangehandlerSubject;
  • 约会项实例从哪里来的不清楚……

标签: c# outlook vsto outlook-addin


【解决方案1】:

您需要在全局范围(例如,在类级别)声明源约会项,以防止它被 GC 从堆中刷出。否则,一旦方法结束并且 GC 将其从堆中刷出,您将不会触发事件。

PropertyChange 事件在父对象的显式内置属性发生更改时触发。只要您需要处理事件,请确保源约会项目对象处于活动状态。

Developing an Inspector Wrapper for Outlook 2010 讨论了一种实现检查器包装器的技术。检查器包装器处理 Microsoft Outlook 检查器窗口的多个实例。

您还可能会发现 Items 类的 ItemChange 事件很有帮助。当指定集合中的项目发生更改时会触发它。

【讨论】:

  • 嗨,每当约会项目的主题发生变化时,我都需要触发。所以它会以不一致的方式触发主题更改,但对于 mailItem 它工作正常。
  • 我正在做 C# Addin 项目。
  • 您需要发布可用于重现问题的示例代码。
  • _propertyChangehandlerSubject = (string str) => { if (str.Equals("ConversationTopic")) { subjectEventHandler(); } };
  • if (item is AppointmentItem) { AppointmentItem AppointmentItem = (AppointmentItem)item;约会项目.PropertyChange += _propertyChangehandlerSubject;
猜你喜欢
  • 1970-01-01
  • 2013-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多