Не удается добавить элемент в раскрывающийся список во время выполнения

Я не могу добавить элементы в выпадающий контроллер во время выполнения в классе ленты. Тем не менее, похоже, что многие темы и даже MSDN разрешить его с помощью свойств класса Globals.

https://msdn.microsoft.com/en-us/library/bb772088.aspx

Первый пример на этой странице msdn не работает для меня. Я не могу связаться с dropDown или любым другим контроллером (кнопка, comboBox и т. Д.).

Вот мой файл.xml:

<?xml version="1.0" encoding="utf-8" ?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" >
 <ribbon>
  <tabs>
   <tab id="LFET" label="LFET(new)">
    <group id="Data" label="Data">
     <dropDown id="DropdownList" label="Dropdownlist1" visible="true">
     </dropDown>
    </group>
   </tab>
  </tabs>
 </ribbon>
</customUI>

И.cs, где я пытаюсь получить доступ к элементу dropDown:

namespace TEST
{
    [ComVisible(true)]
    public class TESTRibbon : Office.IRibbonExtensibility
    {
        private Office.IRibbonUI ribbon;

        public void DropdownList()
        {
            //No way to access my custom ribbon like that.
            Globals.Ribbons.Ribbon.Dropdownlist1.Items.Add();
        }
    }
}

С Уважением,

1 ответ

Я знаю, что у меня были проблемы с манипулированием лентой напрямую. Единственное, что может решить это, - сделать ленту недействительной.

В качестве альтернативы, вы можете сделать его динамическим и получить значения из кода. Я делаю это в моем Word Add-In, и он работает нормально. Если вы измените значения, вероятно, придется впоследствии сделать их недействительными (я не изменяю свои после установки в первый раз).

<dropDown id="mycustomid" showLabel="false" onAction="onAction" getSelectedItemIndex="getSelected"
          getItemCount="getCount" getItemID="getID" getItemLabel="getLabel" getEnabled="getEnabled"
          screentip="whatever" supertip="whatever" />


public void onAction(IRibbonControl control, string id, int index)
{
}

public int getSelected(IRibbonControl control)
{
}

public int getCount(IRibbonControl control)
{
}

public string getID(IRibbonControl control, int index)
{
}

public string getLabel(IRibbonControl control, int index)
{
}
Другие вопросы по тегам