4

実行時にNew Email インスペクタRibbonDropDownで使用される に項目を追加しています。起動時にアイテムを追加し、必要に応じてリストを更新します (ユーザーがボタンを押したとき) 。

public void RefreshListNames()
{
    Logger.Log("Refresh Mail Lists");

    Globals.Ribbons.Ribbon1.rddListNames.Items.Clear();
    foreach (KeyValuePair<Guid, string> kvp in _dda.GetMarketingListNames())
    {
        Microsoft.Office.Tools.Ribbon.RibbonDropDownItem dd = 
            Globals.Factory.GetRibbonFactory().CreateRibbonDropDownItem();

        dd.Tag = kvp.Key;
        dd.Label = kvp.Value;

        Logger.Log("Adding " + dd.Label);

        Globals.Ribbons.Ribbon1.rddListNames.Items.Add(dd);

    }

    Globals.Ribbons.Ribbon1.rddListNames.ResumeLayout();
}

注: rddListNamesRibbonDropDown

このメソッドはメソッド内で呼び出され、ThisAddIn_Startup起動時に正しく設定されます。ただし、新しいメール ウィンドウは空白のドロップダウンで終了します。項目はありません。リストを更新しても、アイテムが再び追加されることはありません。

ログを追加しました。「更新ボタン」が押されたときにメソッドが実行されていることを示しています。

23/04/2013 14:36:43 - Refresh Mail Lists 
23/04/2013 14:36:45 - Adding Marketing List - Dynamic 
23/04/2013 14:36:45 - Adding Marketing List - Bs 
23/04/2013 14:36:45 - Adding Marketing List - As

ドロップダウンでアイテムが失われ続けるのはなぜですか? また、明示的に更新しても、元に戻らないのはなぜですか?

4

1 に答える 1