私はVSTO3.0を使用していますが、リボンデザイナーから、ドキュメント間で共有されていると思われるリボンが提供されます。
したがって、リボン(またはトグルボタン)に表示する必要があるドキュメント固有の状態(XMLでマークアップされたタグの数など)がある場合、すべてのドキュメントがリボンインスタンスを共有しているように見えます
このTIAを修正するにはどうすればよいですか
Application.DocumentChange イベントまたは Application.WindowActivate イベントを使用できます。
最初のコマンドが起動され、現在アクティブなドキュメントを変更しますが、引数にはそのドキュメントに関する情報がないため、それを理解する必要があるため、操作が困難です。
後者も同様で、ウィンドウを変更するたびに発生しますが、この場合は現在アクティブなドキュメントを引数として渡すため、ドキュメント プロパティの値を確認する必要がある場合は、リボンを変更する方が簡単です。それは私のために働いた。
ドキュメントモデル内の適切なイベント(アクティブなドキュメントが変更されたときなど)にフックし、そのイベントで適切なリボンボタンを無効にします(ロードした元のリボンxmlの要素のIDが必要です)。
次に、そのボタンの状態の更新コールバックが発生すると、必要に応じてキャプション/画像/有効を更新できます。