実行時に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();
}
注: rddListNames
はRibbonDropDown
このメソッドはメソッド内で呼び出され、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
ドロップダウンでアイテムが失われ続けるのはなぜですか? また、明示的に更新しても、元に戻らないのはなぜですか?