AppointmentItem の Subject フィールドに実際に入力されたテキストへのアクセスに問題があります。リボンのカスタム ボタンからのコールバックを持つ Outlook 2010 アドインを作成しました。Subject フィールドの値を取得できますが、件名を入力した直後に (コントロール フォーカスを変更せずに) 誰かがボタンをクリックしている場合を除きます。これらの場合、最近入力された値ではなく、件名の以前の値を取得しています。(新しく作成されたミーティング招待状の場合、null 値を取得します)
public void ToggleMeetingPlace_Callback(Office.IRibbonControl control)
{
if ((control!=null)&&(control.Id == "toggleMeetingPlace"))
{
var item = control.Context as Outlook.Inspector;
if ((item != null) && (item.CurrentItem != null))
{
Outlook.AppointmentItem m_item = item.CurrentItem as Outlook.AppointmentItem;
string subject = m_item.Subject;
// some action
}
}
}
ただし、デバッグを開始すると、ウォッチ ウィンドウにいくつかの興味深い動作が表示されます。現在のテキストに更新されました。
この場合の動的ビューには、便利な副作用がいくつかあると思います...コードからこれを行う方法がわかりません。