I recently ran into an issue where I needed to enable and disable Ribbon controls in a VSTO plugin where the Ribbon controls were initialized through a Ribbon.xml file.
This can be a bit challenging s the controls in the Ribbon XML file are not available to your code at design time when you are trying to write the actual code.
In addition, I needed to trigger the decision handling logic from another section of code not associated to the Ribbon.
Accomplishing this task involved a number of steps and was done building an integration to Outlook (not sure if this would be similar in Word or Excel).
Identify the controls at run-time
In each control that I wanted to control the state on, at the time of the Ribbon’s instantiation I had them call