私のウィンドウには、いくつかのコントロールを持つリボン バーがあります。このリボンバーをリソース ディクショナリに配置し、ウィンドウのコンテンツとして使用しました。これらのコントロールを次のようなコマンドにバインドしました。
<ribbonbar x:key="myribbonbar">
<Buttun Name="Btn_Undo"
Command="{x:static Application.undo}"
CommnadTarget="{Binding ElementName="MyControl}" />
</ribbonbar>
これらのコマンドは、以前に CommnadTarget として使用された MyControl の定義者クラスの CommandBindings に追加されました。問題は、Btn_Undo が常に無効になっており、MyControl の定義クラスでコマンドを表示できないことです。これが私がやったことです:window.xaml:
<ContentControl Content="{DynamicResource MyRibbonbar}"/>
<Designer Name="MyControl" />
Designer.cs :
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Undo, Undo_Executed));
リボンバーを window.xaml に配置した場合は機能しますが、ウィンドウが混乱しすぎて巨大になります。
前もって感謝します。