RibbonDropDownItems не видны после создания новой почты - PullRequest
0 голосов
/ 12 февраля 2019

Для каждого получателя пользователь, введя в поле «Кому» мою надстройку, создаст соответствующий элемент RibbonDropDown, который я добавлю в RibbonGallery.После запуска события выполняется следующий код:

private void updateGallery(string name, string address, string gender, double probability)
{
    Globals.Ribbons.Ribbon1.RibbonUI.Invalidate();

    Microsoft.Office.Tools.Ribbon.RibbonDropDownItem itemReceiver = Globals.Factory.GetRibbonFactory().CreateRibbonDropDownItem();
    itemReceiver.ScreenTip = address;
    itemReceiver.Tag = gender;
    itemReceiver.Label = name;
    itemReceiver.SuperTip = (probability * 100).ToString() + " % Probability";

    Globals.Ribbons.Ribbon1.gallery1.Items.Add(itemReceiver);
}

Примечание: gallery1 - это RibbonGallery.

Это то, чтопользователь увидит:

View (First Mail)

Как видно на первом рисунке, пользовательский интерфейс работает так, как задумано.Когда пользователь создает новое письмо, галерея больше не обновляет свои элементы.Код все равно будет выполнен, но новые элементы не будут отображаться в пользовательском интерфейсе.

Это то, что пользователь увидит:

View (Every Mail after)

Я пытался использовать Invalidate, но либо я делаю это неправильно, либо / и, похоже, это не работает.Надстройка также генерирует приветствие на основе содержимого gallery1 .На рисунке 2 видно, что тело письма создает приветствие, поэтому содержимое gallery1 является допустимым, но не отображается вообще.

Вот XML:

<?xml version="1.0" encoding="UTF-8"?>
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon>
        <tabs>
            <tab idMso="TabAddIns" label="Smart Mail">
                <group id="groupUnsub" label="Unsubscribe">
                    <button id="btnUnsub" imageMso="JunkEmailOptions" onAction="button1_Click" supertip="Use this function to unsubscribe." label="Cancel Mailinglist" size="large" />
                </group>
                <group id="group1" label="Genderize">
                    <gallery id="gallery1" onAction="gallery1_Click" label="Identified Genders" size="large" columns="2" rows="2" itemHeight="32" itemWidth="32">
                        <button id="btnIndividualSalutation" imageMso="SendCopyOptions" onAction="btnIndividualSalutation_Click" label="Insert Individual Salutation" />
                        <button id="btnGroupSalutation" imageMso="SendCopyOptions" onAction="btnGroupSalutation_Click" label="Insert Group Salutation" />
                    </gallery>
                </group>
                <group id="group2" label="User Preferences">
                    <checkBox id="chkAutoSaveToContacts" onAction="chkAutoSaveToContacts_Click" label="Autosave to Contacts" />
                    <checkBox id="chkAutoAddSalutation" onAction="chkAutoAddSalutation_Click" label="Autoadd Salutation" />
                    <checkBox id="chkGroupSalutation" onAction="chkGroupSalutation_Click" label="Group Salutation" />
                    <checkBox id="chkAutoComplete" onAction="chkAutoComplete_Click" label="Autocomplete Text" />
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>
...