私は WPF の初心者であり、RoutedCommands を unserstund しようとしています。RoutedCommands はコマンド ソースから開始され、イベントはバブリングとトンネリングによって伝播されます。
しかし、プロセスを停止できますか? たとえば、CanExecute = false を設定して、イベントの伝播を停止したいと考えています。
助けてくれてありがとう!
私は WPF の初心者であり、RoutedCommands を unserstund しようとしています。RoutedCommands はコマンド ソースから開始され、イベントはバブリングとトンネリングによって伝播されます。
しかし、プロセスを停止できますか? たとえば、CanExecute = false を設定して、イベントの伝播を停止したいと考えています。
助けてくれてありがとう!
-Handlerが? RoutedCommand_ _ はいの場合は、次のことを試してください。CanExecuteCanExecutefalse
設定しe.Handled = trueます。-Handler が実際に呼び出されるCommandTargetように、 が正しく設定されていることを確認してください。CanExecuteコマンドを . に配置する場合、これは重要ですContextMenu。noCommandTargetが指定されている場合、WPF はフォーカスされた要素を取得し、CanExecute-Handler は常に呼び出されるとは限らないため、別のハンドラーによって解釈される可能性があります。次のようなものが仕事をします:
<ContextMenu>
<MenuItem Command="DesiredCommand" CommandTarget="{Binding PlacementTarget,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ContextMenu}}" .../>
...
</ContextMenu/>