我正在將項目添加到RibbonDropDown
,新電子郵件檢查器在運行時使用。我加在啓動的項目,並刷新需求列表(當用戶按下一個按鈕)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
爲什麼下拉保持丟失的物品?爲什麼他們不回來,即使我明確地刷新它們?
我也試過Globals.Ribbons.Ribbon1.rddListNames.ResumeLayout(); - 雖然我沒有明確地暫停佈局,不出所料,這沒有任何區別。 – Ryan 2013-04-23 07:04:51
您使用[** Ribbon XML **或** Ribbon Designer **](http://stackoverflow.com/a/9379747/175679)嗎? – SliverNinja 2013-04-29 14:22:56
我正在使用設計器 - 但可以將設計的功能區導出爲xml,以便在需要時進行手動編輯。 – Ryan 2013-04-30 00:02:31