Не удается добавить элемент в раскрывающийся список во время выполнения
Я не могу добавить элементы в выпадающий контроллер во время выполнения в классе ленты. Тем не менее, похоже, что многие темы и даже 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)
{
}