1

私は WPF の初心者であり、RoutedCommands を unserstund しようとしています。RoutedCommands はコマンド ソースから開始され、イベントはバブリングとトンネリングによって伝播されます。

しかし、プロセスを停止できますか? たとえば、CanExecute = false を設定して、イベントの伝播を停止したいと考えています。

助けてくれてありがとう!

4

1 に答える 1

0

-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/>
于 2013-11-13T09:14:34.290 に答える