私のOutlookアドインでは、手動で作成する一部のメールの機能をサポートするために、カスタムリボン(コントロール付きの新しいグループ)をインスペクタに割り当てます。このカスタムタブは、ストアやフォルダに関係なくすべてのメールアイテムを開くと表示されます。手動で作成したカスタムメールアイテムのインスペクタに対してのみ、このタブを表示するようにします。インスペクタのカスタムリボンコントロールの変更dynamiccaly
以下は、コードのインスペクターのカスタムUIとして追加したxmlの断片です。私は可視性(GetCustomGroupVisible)を設定するために実行されるコールバックメソッドを追加しました。
<ribbon>
<tabs>
<tab idMso="TabReadMessage">
<group id="MyCustomGroup" insertBeforeMso="GroupMailDelete" getVisible="GetCustomGroupVisible">
<button id="Button1" size="large" onAction="ButtonClick" />
<button id="Button2" size="large" onAction="ButtonClick" />
</group>
</tab>
</tabs>
</ribbon>
// Callback method
public bool GetCustomGroupVisible(IRibbonControl control)
{
bool makeVisible = false;
if (// this is one of my custom mails !)
{
makeVisible = true;
}
return makeVisible;
}
私の問題は、私は新しいインスペクタを開くと、「GetCustomGroupVisibleは」と呼ばれることもされていない、上に示したコールバックメソッドです。なぜこのようなことが起こっているのですか?新しいインスペクタを開くたびにこのコールバックメソッドを実行するにはどうすればよいですか。私は何が欠けていますか?