Как получить доступ к значению флажка Backstage в надстройке Office? - PullRequest
2 голосов
/ 07 ноября 2011

У меня есть логическое свойство Settings.Default.MarkAsRead в файле Setting.settings, к которому я могу получить доступ в своем классе ленты.Что я хотел бы сделать, это установить значение флажка в моем разделе за кулисами в зависимости от значения этого свойства.Также, если пользователь изменяет его, мне нужно сохранить новое значение.

Как я могу это сделать?

Это мой (упрощенный) xml:

<?xml version="1.0" encoding="UTF-8"?>
<customUI onLoad="Ribbon_Load" 
         xmlns="http://schemas.microsoft.com/office/2009/07/customui"> 
  <backstage>
    <tab id="MyBackstageSection" label="MyBackstageSection"
                columnWidthPercent="30" insertAfterMso="TabInfo" visible="true" >
      <firstColumn>
        <group id="grpOne" label="Configuration">
          <bottomItems>

              <checkBox id="markAsRead" label="Mark as read"
                                 getPressed="markAsRead_GetPressed" />

              <button id="save" label="Save Preferences" onAction="save_Click"/>

          </bottomItems>         
        </group>
      </firstColumn>
    </tab>
  </backstage>
</customUI>

1 Ответ

2 голосов
/ 08 ноября 2011

Я не нашел способа доступа к элементам xml из метода Ribbon_Load, поэтому я создал логическое свойство в классе ленты, которое я обновляю с помощью обратных вызовов GetPressed и OnAction:

xml:

<checkBox id="markAsRead" label="Mark as read" 
            onAction="markAsRead_OnAction" getPressed="markAsRead_GetPressed"/>

c #:

    private bool MarkAsRead { get; set; }

    public bool markAsRead_GetPressed(Office.IRibbonControl control)
    {
        this.MarkAsRead = Settings.Default.MarkAsRead;
        return this.MarkAsRead;
    }

    public void markAsRead_OnAction(Office.IRibbonControl control, bool isPressed)
    {
        this.MarkAsRead = isPressed;
    }
...