WPFアプリケーションでいくつかのカスタムコマンドを定義しました。
public class MyCommands {
public static RoutedUICommand CopyPlateCommand;
public static RoutedUICommand PreviousRecordCommand;
public static RoutedUICommand NextRecordCommand;
public static RoutedUICommand SearchCommand;
public static RoutedUICommand SearchPlateCommand;
}
私はこれらのコマンドのいくつかを使用するものUserControl
を持っています:ContextMenus
<UserControl x:Class="MyNamespace.UserControl1"
. . . >
<UserControl.Resources>
<ContextMenu x:Key="ContextMenu" HorizontalAlignment="Left">
<MenuItem Header="Copy Plate" Command="{Binding cs:MyCommands.CopyPlateCommand}" />
<MenuItem Header="Search Plate" Command="{Binding cs:MyCommands.SearchPlateCommand}" />
</ContextMenu>
<ContextMenu x:Key="TextBoxMenu" HorizontalAlignment="Left">
<MenuItem Header="Copy" Command="{Binding Copy}" />
<MenuItem Header="Copy Plate" Command="{Binding cs:MyCommands.CopyPlateCommand}" />
<MenuItem Header="Search Plate" Command="{Binding cs:MyCommands.SearchPlateCommand}" />
</ContextMenu>
</UserControl.Resources>
. . .
</UserControl>
にはコマンドバインディングはありませんUserControl1
。
UserControl
のインスタンスを含む別のものがありますUserControl1
。またCommandBindings
、次のコンテキストメニューに含まれるコマンドも含まれていUserControl1
ます。
<UserControl x:Class="MyNamespace.UserControl2"
. . . >
<UserControl.CommandBindings>
<CommandBinding Command="Copy" CanExecute="CopyCommand_CanExecute" Executed="CopyCommand_Executed" />
<CommandBinding Command="cs:MyCommands.CopyPlateCommand" CanExecute="CopyPlateCommand_CanExecute" Executed="CopyPlateCommand_Executed" />
<CommandBinding Command="cs:MyCommands.SearchPlateCommand" CanExecute="CopyPlateCommand_CanExecute" Executed="SearchPlateCommand_Executed" />
</UserControl.CommandBindings>
. . .
<c:UserControl1 . . . />
コマンドのさまざまなハンドラーにブレークポイントを配置しましたが、ブレークポイントがヒットすることはありません。私は何を間違えましたか?コマンドバインディングをに入れる必要がありますUserControl1
か?
いいえ、私のプログラムはMVVMを使用していません。私はMVVMについて聞く前にプロジェクトを開始しました。将来的にはこれをMVVMに変換するつもりですが、今は時間がありません。私はいくつかのバグ修正をドアの外に出す必要があり、これは私を妨げています。
理解に感謝。
トニー