問題タブ [routed-commands]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - WPF:ApplicationCommandsはCommandTargetを無視しているようです
ウィンドウにaTextBox
とaがあり、フォーカスがあるときにの選択を上下ListView
に移動したいと思います。ListView
TextBox
しかし、私は自分の宣言を理解していないようCommandTarget
です。それらは無視されます。MSDNによると、これは非のデフォルトの動作ですRoutedCommands
が、私が使用しようとしている移動コマンドはRoutedUICommands
であるため、ここではおそらく問題ではありません。
私は何かが足りないのですか?
私のXAMLは現在次のようになっています(コードビハインドは空です):
wpf - WPF VB.net-同じコマンドに対して複数のCommandBindingを実行できますか?
WPFでは、コマンドを使用して、一度に複数のテキストボックスにすべてのコンテンツを設定しようとしています。次のコードは、トグルボタンでコマンドを取得して、スコープを持つテキストボックスを実行できますが、両方のコマンドを同時に実行することはできないようです。
私がやろうとしていることはコマンドで可能ですか?click_eventなどのコードビハインドで各テキストボックスを直接参照する必要はありません。
助けてくれてありがとう!
c# - 手続き型コードから Execute を呼び出す前に、ICommand の CanExecute メソッドをチェックする必要がありますか?
XAML で s を使用する場合ICommand
、WPF はCanExecute
メソッドを使用して、コマンドに関連付けられたコントロールを有効または無効にします。Execute
しかし、手続き型コードから呼び出している場合はどうなるでしょうか? 最初CanExecute
にコマンドが実行できることを確認する必要がありますか、それともExecute
このチェックを自分で処理する必要がありますか?
言い換えれば、これを行う必要があります:
またはこれだけ:
wpf - CanExecute(または何か)をWPFにキャッシュしますか?
System.WebのCacheオブジェクトは、かなりおかしくなります。
CommandBinding.CanExecuteを次のように処理します。
私のシナリオでは、NotInsignificantRoutine()の戻り値は5秒のウィンドウ内で変化しません。WPFにキャッシュするための最良の方法は何でしょうか?System.Webをインポートしますか?
silverlight-4.0 - Silverlight ICommandをどのように実行しますか?
これはとても基本的な質問ですが、私は尋ねなければなりません。
SLには、次のXAMLがあります。
そして、このコードの背後にあります:
しかし、ボタンをクリックしても、コマンドのExecute()は起動されません。
それにはトリックがありますか?
wpf - ポップアップからルーティングされたイベント/コマンドをリッスンする
ポップアップを動的に作成するコントロールがあります。
ポップアップには、元のコントロールで反応したい、ルーティングされたイベント/コマンドを起動するコントロールが含まれています。元のコントロールは、ポップアップの配置ターゲットとして設定されます。
元のコントロールがバブル イベントを受け取ると思いますか? 別のビジュアル ツリーにあることはわかっていますが、プレースメント ターゲットに提供されるかどうかは疑問でした。私のコードからはそうではないようです。
誰でもこの状況を処理する方法を提案できますか? 別のビジュアル ツリー内のイベントへの応答。ポップアップのルートに配置され、元のビジュアル ツリーへの「ブリッジ」として機能するコントロールを記述できるかどうか疑問に思っていました。
どうもありがとう、
wpf - ApplicationCommandsをViewModelにバインドする方法は?
MVVM-Lightを使用していくつかのカスタムコマンドを正常に使用しましたが、アプリケーションがウィンドウレベルだけでなく、詳細なアイテムレベルでも標準のApplicationCommandsに応答するようにしたいです。
ノードをTreeView
コピーして貼り付けることができるようにしたいものがあります。各TreeViewItemには独自のViewModelがHierarchicalDataTemplates
あり、いくつかの異なるタイプがあるため、XAMLで表示されます。ViewModelクラスに、コピー、貼り付け、およびCanCopyとCanPasteのメソッドを実装しました。必要に応じて、これらを指すMVVM-Light RelayCommandsを簡単に実装できますが、それは正しくないようです。
メニュー、Ctrl+CおよびCtrl+V、または最終的にはコンテキストメニューを使用してコマンドにアクセスしたいと思います。また、TextBoxなど、UIの他の要素のコピー/貼り付け機能を壊したくありません。この目的には、組み込みのApplicationCommandsを使用するのが適切と思われます。ただし、これらの例はUserControlコードビハインドで処理されているだけです。私はUserControlを持っていません(または必要ありません)。また、MVVMに実際に続いているわけでもありません。
ビューモデル、つまりデータテンプレートにバインドApplicationCommand.Copy
してコマンドを実行する方法はありますか?ApplicationCommand.Paste
c# - コマンドの CanExecute メソッドが呼び出されますが、Execute メソッドは呼び出されません
コマンドをリボン コントロールのボタンにバインドしました。ボタンの CanExecute メソッドは期待どおりに呼び出されますが、ボタンをクリックしても Execute メソッドは呼び出されません。はプロパティを- 問題のボタンが有効でクリック可能に設定しますCanExecute
。CanExecute
true
他の誰かが以前にこの動作を見たことがありますか? もしそうなら、どうすればそれを修正できますか!
編集:
StaticCommands.ThisCommand
はRoutedCommand
の入力ジェスチャを持つ ですF5
。
残念ながら、すべてが別のチームのライブラリにまとめられているため、xaml を投稿できません。今のところそれが正しいと思います。また、コマンドに関連付けられたキーボード ジェスチャ ( を押すF5
) を使用すると、execute メソッドが呼び出されます。
例外はスローされず、出力ウィンドウにメッセージも表示されず、snoop はすべてが正しくバインドされていることを示します。私は本当に困惑しています。
.net - カスタムWPFコマンド(RoutedUICommand)ハンドラーの実装コードを配置するのに最適な場所
WPFでは、カスタムコマンドにcommand_Executedやcommand_CanExecuteなどのイベントハンドラーがあります。ベストプラクティスは、実装ロジックを分離コードクラスに直接実装せず、上位レベルの実装ロジックへの関数呼び出しのみを含めることです。
カスタムコマンドを作成するときに、コマンドのハンドラー関数に関数呼び出しが1つしかない場合は、それをコードビハインドに直接配置するのは簡単ですが、複数の関数呼び出しがある場合、または関数呼び出しがそれに基づいて何かを返す場合はどうなりますかそのうちの決定が行われます(特に、コマンドを無効化/有効化するcommand_CanExecute関数の場合、コマンドをいつ有効化または無効化するかを決定する必要があります)。私が考えていた可能性は次のとおりです。保守性、コードのクリーンな維持、ソフトウェアエンジニアリングの原則、およびベストプラクティスの観点から、どれが最も適切ですか。
すべての関数呼び出しと意思決定ステートメントをコードビハインド(command_executeまたはそのcommand_execute呼び出しのコードビハインドの一部の関数)に保持します。コードが単純であれば問題ありませんが、コードの背後に多くのハンドラーがあると、物事が醜くなります。ここには実装コードはなく、先に述べた意思決定コードのみがあります。
コマンドを定義し、静的プロパティを介してアクセスできるようにするクラスに実装ロジックを保持します。これで、分離コード内のハンドラーは1つの関数呼び出しのみを持ち、必要に応じて戻り値を受け取ります。
アプリケーションの実際の機能を実装する上位レベルのクラスに実装して、分離コードハンドラーが関数呼び出しを1つだけ持つようにします。これは最も理にかなっていますが、コマンドハンドラーが多くの異なる無関係なクラスからメソッドを呼び出さなければならない場合があり、そのロジックをどこに配置するかを決定するのが難しいため、このオプションは私の心に疑問を投げかけます。
私が逃した他のもの。
c# - パラメータ付きのRoutedCommand
RoutedCommandで遊んでいますが、 Executedメソッドがe.Parameterにパラメーターを含めるようにパラメーターを渡す方法を見つけるのに問題があります。
私のRoutedCommand:
使用法:
実行: