問題タブ [commandbinding]

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.

0 投票する
6 に答える
88662 参照

.net - WPF - CommandBindings を介してコマンドに強制的に「CanExecute」を再評価させる方法

階層内のMenuそれぞれに、定義した に設定されたプロパティがあります。associatedは、各 の有効な状態を制御する評価用のコールバックを提供します。MenuItemCommandRoutedCommandCommandBindingCanExecuteMenuItem

これはほとんど機能します。メニュー項目は、最初は正しい有効状態と無効状態で表示されます。ただし、CanExecuteコールバックが使用するデータが変更された場合、この新しい状態が UI に反映されるようにするには、コールバックから結果を再リクエストするコマンドが必要です。

RoutedCommandこれに関する、またはこれに対するパブリックメソッドはないようCommandBindingです。

コントロールをクリックまたは入力すると、コールバックが再び使用されることに注意してください(マウスオーバーでは更新されないため、入力時にトリガーされると思います)。

0 投票する
1 に答える
634 参照

wpf - WPF コマンド/コマンド バインディングに基づくコントロールの無効化

コマンドを実行できない場合、WPF はコマンドのソース (通常はボタン) を自動的に無効にするため、コマンドを使用すると便利です。

明らかに、この機能は、コマンド ソースではないコントロールでは使用できませんListBox

コマンド以外のソース管理でこの機能を有効にする最良の方法は何ですか? 私はいくつかの解決策を考えました:

  • ListBoxを aで囲み、ボタンの をクロムがないようにButton変更します。ControlTemplate
  • 非表示の を作成し、のプロパティをのプロパティにButtonバインドします。IsEnabledListBoxIsEnabledButton
  • ListBoxそのimplementsの子孫を作成しますICommandSource

もっとエレガントな方法はありますか?

0 投票する
2 に答える
3657 参照

c# - WPF コマンド バインディングのテストを作成するにはどうすればよいですか?

「コマンド」クラスがあります:

MainWindow.xaml.cs の分離コード:

また、メニュー バーを実装するユーザー コントロール内の XAML は次のとおりです。

コードは機能します。全体的なパターンが気に入っているので、使い続けたいと思っています。

ただし、テスト駆動開発を行い、単体テストと統合テストで 100% のカバレッジを達成するなど、他の目標も追求しようとしています。また、StyleCop と FxCop の警告に 100% 準拠したいと考えています。そして、私はここで捕まっています。

FxCop (Microsoft.Security:CA2109) で推奨されているように、私のMainWindow.Exit()メソッドは非公開ですが、これはテストから直接呼び出すことができないことを意味します。公開して FxCop メッセージを非表示にできると思います。または、アクセサーを使用できます。しかし、私はプライベート メソッドに対して直接テストを書くことに偏見を持っています。特にこの場合は、コマンド バインディング自体ではなく、メソッドをテストするだけなので。

コマンドが意図したとおりに機能することを確認できるように、テストコードからコマンドを呼び出す他の方法が必要だと感じています(手動でテストする以外に)。助言がありますか?

0 投票する
1 に答える
17717 参照

wpf - MVVM での CommandParameter 値の受信

次のようにコマンドをバインドしています。

ここでは、その CommandParameter プロパティもバインドします。次に、NextCommand からその値をフェッチする方法を説明します。

その関数定義:

CommandParameter値を取得するには?

前もって感謝します。

0 投票する
5 に答える
11207 参照

c# - WPF:Enterボタンを押したときに、検索フィールドでコマンドバインディングを実行します

WPFアプリに、コマ​​ンドバインディングを含む検索ボタンを含む検索フィールドがあります。これはうまく機能しますが、キーボードのEnterキーを押したときに、テキストフィールドに同じコマンドバインディングを使用するにはどうすればよいですか?私が見た例はすべて、KeyDownイベントハンドラーでコードビハインドを使用しています。これをxamlとコマンドバインディングでのみ機能させるスマートな方法はありますか?

0 投票する
2 に答える
2430 参照

wpf - コマンドバインディングを使用してビューからビューモデルにデータを送信する

質問: コマンド バインディングを使用する場合、ビュー モデルにデータを送信するにはどうすればよいですか? たとえば、ボタンをクリックすると、リストの「現在選択されているインデックス」が送信され、リストのその項目に対して操作を実行できるようになります


詳細情報: 私は貨物のリストを持っているプログラムに取り組んでおり、各貨物にはパレットのリストがあります。現在選択されている貨物に新しいパレットを追加できるボタンを作成したいと考えています。>編集> そして、もう 1 つの作業を進めると、各パレットには製品のリストが表示されます。そのため、自分がどの貨物に乗っているかを知る必要があるだけでなく、どの貨物のどのパレットに乗っているかも知る必要があります。

コマンド バインディングを行うとき、ViewModel にデータを送信する方法がわかりません。この純粋な MVVM を保持したいので、ViewModel でビューをチェックしたくありません。

~N


編集: 11/04/09 - ViewModel のインスタンス化に関する質問のセクションを削除しました。これは他の質問を解決するために順調に進んでいるので、別の質問でもう一度尋ねます。そして、私が望む方向に明確にするために、質問にいくつかの編集を加えました。また、いくつかの文法的なビットを変更して、1 つしかない場合に 2 つの質問について話さないようにしました。

0 投票する
2 に答える
4440 参照

wpf - WPF ToggleButton と DelegateCommand

ToggleButtona が sを介してチェックされているかどうかを判断する方法はありDelegateCommandますか?

ティア、マイク

以下の XAML コード。コレクションを使用ItemsControlしてバインドしています。私は基本的に、クリックされたときに各ボタンのトグルステータスを取得する方法を望んでいます。

0 投票する
3 に答える
9622 参照

.net - TextBlock のコマンド バインディングを有効にする

私は WPF アプリケーションを開発しており、コマンド バインディングを使用してクリックしたときにコマンドをトリガーしたい TextBlock を持っています。これを達成するための最良の方法は何ですか?

  • TextBlock-control には Command プロパティはありませんが、CommandManager はあります。これは何ですか?コマンドバインディングに使用できますか? このプロパティで他の多くのコントロールも見てきました..

  • 私が監視した使用可能なコントロールはありますか? たとえば、ボタンを使用して、ボタンのように見えないようにスタイルを設定することをお勧めしますか?

  • TextBlock をラップできる Command バインディングをサポートするコントロールはありますか?

  • 基本的に TextBlock であるカスタム コントロールを作成する必要がありますが、追加のプロパティ Command および CommandArgument を使用して、たとえば MouseLeftButtonDown プロパティでコマンド バインディングを有効にする必要があります。

0 投票する
2 に答える
531 参照

c# - CommandBindingCtrl+スペースバー

RoutedUICommandを実装するRoutedCommandクラス内でコマンドを処理します。これは、CanExecuteと必要に応じてExecuteをチェックすることで、コマンドをブロックまたはオーバーライドするのに役立ちます。EditingCommand、ApplicationCommandなどをオーバーライドできます。処理すらできないコマンドの1つは、Ctr+Spacebarです。それはMediaCommandまたは私が見つけることができない他のいくつかのタイプですか?どこかで取り扱われていると思いますので、コントロールできません。

0 投票する
1 に答える
1516 参照

.net - CommandBinding の CanExecute のデバッグ

Buttonにバインドされたユーザー コントロールがありますNavigationCommands.RefreshCommand。コマンドのハンドラーは、親コントロールにあります。ハンドラーは次のCanExecuteようになります。

何らかの理由でButton、ウィンドウをクリックするまで無効のままになります。

をクリックしButtonて実行すると(IsConnecting一時的にtrueに設定されます)、ボタンは正しく無効になりますが、ウィンドウで別のイベント(クリックなど)が発生するまでボタンは有効になりません。

ボタンにバインドされているコマンドの CanExecute ハンドラーをデバッグするために使用できるツールやトリックはありますか?