Не уверен, поможет ли это вам, но для пользовательской ленты вы реализуете обратный вызов getEnabled
с XML-лентой.
В XML:
<button id="btnMyButton" ... getEnabled="OnMyButton_GetEnabled" onAction="..."/>
В коде позади:
public bool OnMyButton_GetEnabled(Office.IRibbonControl rControl)
{
// return true or false to enable or disable
}
Вам необходимо вызвать метод IRibbonUI.Invalidate()
, если вам нужно принудительно вызвать эти обратные вызовы (например, когда переменные состояния включения / выключения установлены из-за какого-то другого события).
Кстати, интерфейс Ribbon Designer (в VS 2010), по-видимому, не дает возможности реализовать обратный вызов getEnabled
.