Wie fügen Sie die Combo Box Elemente dynamisch hinzu?VSTO Ribbon Combo Box Artikel hinzufügen Dynamisch
Ich habe eine Combo-Box, in der ich die API während des OnChange Call Back-Ereignisses aufrufen werde. Haben Sie ein Problem in die Elemente in der Combo-Box
Ladenpublic void OnChange(Office.IRibbonControl control, string text)
{
var result = GETMembersList("https://restcountries.eu/rest/v1/all");
var members = from member in result
select member;
foreach (var member in members)
{
dsMember mem = new dsMember();
mem.Id = member["numericCode"].ToString();
mem.Name = member["name"].ToString();
RibbonDropDownItem item = Globals.Factory.GetRibbonFactory().CreateRibbonDropDownItem();
item.Label = mem.Name;
**cmbMembers.Items.Add(item);** ?? //problem here, cant access the combo box
}
Ribbon.xml
<?xml version="1.0" encoding="UTF-8"?>
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab id="tabTest" label="TEST">
<group id="grpTest">
<comboBox id="cmbMembers" label="Users" showImage="false"
onChange="OnChange"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Haben Sie 'Globals.Ribbons.Ribbon1.cmbMembers.Items.Add (item);'? – haindl
@haindl ya ich versuchte, aber Ribbon1 ist null. –
Aus der Sicht von Office gibt es keine Möglichkeit, Bänder ohne XML zu erstellen. Unabhängig davon, ob Sie VSTO, ein COM-Add-In oder VBA verwenden, benötigen Sie immer diese Ribbon.xml. Der VSTO Ribbon Designer ist wirklich nur eine Möglichkeit, diesen Prozess zu vereinfachen. Aus der XML-Perspektive gibt es zwei Möglichkeiten, die Combobox mit Elementen zu füllen. Wenn die Elemente statisch sind und sich nicht ändern, dann verwenden Sie einfach 'getItemCount/getItemID/getItemLabel' auf dem '', aber wenn sich die Elemente während der Laufzeit ändern, müssen Sie '' anstelle von '' verwenden und baue '