私は WPF の初心者であり、RoutedCommands を unserstund しようとしています。RoutedCommands はコマンド ソースから開始され、イベントはバブリングとトンネリングによって伝播されます。
しかし、プロセスを停止できますか? たとえば、CanExecute = false を設定して、イベントの伝播を停止したいと考えています。
助けてくれてありがとう!
私は WPF の初心者であり、RoutedCommands を unserstund しようとしています。RoutedCommands はコマンド ソースから開始され、イベントはバブリングとトンネリングによって伝播されます。
しかし、プロセスを停止できますか? たとえば、CanExecute = false を設定して、イベントの伝播を停止したいと考えています。
助けてくれてありがとう!
-Handlerが? RoutedCommand
_ _ はいの場合は、次のことを試してください。CanExecute
CanExecute
false
設定し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/>