問題タブ [relaycommand]
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.
.net - SQLにバインドされたCodeBehindからRelayCommandを起動する
次のように、ViewModelでRelayCommandを作成できるかどうか疑問に思います。
ctor:
そして、XAMLの背後にあるコードから、選択した行をDataGridから取得し、それらをリストに入れます。
この段階で、前に作成したRelayCommandを使用して、リストをViewModelに送り返したいと思います。コードでRelayCommandを作成し、それをViewModelのコマンドにバインドして起動することは可能でしょうか?
別の方法はありますか?もちろん、MVVM-Lightで弱い参照のMessengerクラスを使用することもできますが、基になるViewModelだけでなく、その呼び出しのすべてのサブスクライバーに送信されるのが気に入らない点があります(複数ある場合はMessengerを使用すると致命的です) TabControls内の同じビューのインスタンス)
誰かが私を続けるためのアイデアを持っていることを願っています、ありがとう、Kave
xaml - MVVM light - XAML から RelayCommand に複数のパラメーターを渡す
ビューに複数の PasswordBox があり、ボタンをクリックしたときにすべての SecureStrings をビュー モデルに渡したいと考えています。
私の推測では、カスタム クラスのインスタンスにすべての SecureString を設定し、そのオブジェクトをパラメーターとしてボタンにバインドされた RelayCommand に渡したいと考えています。方法さえわかれば...
回避策に関する私の現在のアイデア:
ボタンの RelayCommands アクションで、カスタム クラスをパラメーターとして受け取るコールバックを使用して NotificationMessageAction を送信します。ビューのコード ビハインドでそのメッセージを登録し、SecureStrings を使用してオブジェクトを設定し、コールバックを使用してそのオブジェクトをビュー モデルに戻します。とても素敵ではありません...
XAML でこれを行うためのより良い方法があるはずですよね?
silverlight - リンクされた複合クラスを持つ MVVM プロパティと CanExecute Relay コマンドが機能しない
C# ライブラリ クラスにエンティティ クラスがあり、Silverlight クラス ライブラリにリンクされています (エンティティは、他のシステムとのレガシー互換性のために C# クラスである必要があります)
例 (C# ライブラリ):
このクラスは、Silverlight クラス ライブラリにリンクされています。
MVVMにはプロパティがあります
プロパティが XAML のコントロールにバインドされている
TestClassのTestValueに依存するRelayCommands CanExecuteでボタンを制御したい...
ただし、TestValue が変更された場合 (空の文字列とは異なります)、PressCommand CanExecute は変更に気付かないようで、有効になっていないため、使用できません...
この種のset-tuでCanExecuteを使用することは可能ですか
wpf - RelayCommandを使用して複雑なデータをMVVMモデルに送信する
複雑なクエリインターフェイスがあり、RelayCommandを介してモデルに渡す必要があります。これは、いくつかのコンボボックス、チェックボックス、およびテキスト入力で構成されています。
単一のコマンドパラメータ(RelayCommandなど)を簡単に渡すことができますが、RelayCommandなどの場合、コマンドをどのようにカプセル化するのでしょうか。これは少し過剰に思えます。
ヒントをいただければ幸いです
ありがとう
mvvm - MVVM を使用して Silverlight のコマンドに CommandParameter を渡す
私はちょうど Silverlight を学んでいて、MVVM と Commanding を見ています。
OK、基本的な RelayCommand の実装を見てきました。
これを使用してコマンドでパラメーターを渡すにはどうすればよいですか?
次のように渡すことができることがわかりましたCommandParameter
:
私の ViewModel では、コマンドを作成する必要がありますがRelayCommand
、Action
デリゲートが必要です。RelayCommand<T>
を使用して実装できますかAction<T>
- もしそうなら、どのようにそれを行い、どのように使用するのですか?
既存のライブラリを使用する前に完全に理解したいので、サードパーティのライブラリ (MVVM Light など) を使用しない MVVM を使用した CommandParameters の実用的な例を教えてください。
ありがとう。
unit-testing - どうすればRelayCommandをユニットテストできますかDropFile?
私はMVVMLightを試しています。これは、ビューモデルとXAMLでアプリの外部からのドラッグアンドドロップを簡単に処理できるように見えるEventToCommand機能に部分的に触発されています。ただし、RelayCommandの単体テスト方法に混乱しています。私のRelayCommandは単純に宣言されています
次に、機能はViewModelコンストラクター内で割り当てられます。インラインではなく、ViewModelのメソッドを使用します。
DropFile RelayCommandの単体テストを作成しているときに、何を呼び出すべきかわかりませんか?電話する必要があります
DragEventArgsには空のコンストラクターしかなく、その主要なプロパティはセッターではなくゲッターであるため、どのようにパラメーターを構築するのでしょうか。
wpf - 他のウィンドウのボタンのRelayCommand
メインウィンドウと、Loginwindowという別のウィンドウがあります。ある時点で、このLoginWindowが表示されてログイン情報を取得します... LoginWindowにボタンがあり、そのCommandプロパティがMainViewModelのOkCommandに次のようにバインドされています。
MainVeiwModelに、OkCommandRelayCommandを追加しました
このコードは正常に実行され、[OK]ボタンをクリックするとMessageBoxが表示されます。ただし、[OK]ボタンをクリックするとLoginWindowを閉じるにはどうすればよいですか。
wpf - 「古い」DataContext で呼び出された RelayCommand
ViewModels で RelayCommands を使用して、コード ビハインドを削除しています。RelayCommands は機能していますが、この状況を除きます。RelayCommands が定義されている ViewModel は、datacontext の変更に伴って変更されます。データコンテキストの変更後にコマンドが起動される場合、コマンドは「古い」ビューモデルで起動されます。デバッグ中に、プロパティが古いデータ コンテキストからのものであることがわかります。しかし、正しいビューモデルの正しいデータが表示されるため、ビューではすべて問題ありません。
では、バインドされたコマンドがデータコンテキストの変更に反応できない可能性はありますか? それとも他に何か問題があるのでしょうか?
コードの一部を次に示します。
タブコントロールのデータコンテキストは正しく変更されていますが、変更後、コマンドは古いデータコンテキストで呼び出されています。
wpf - WPFDataGridで検証エラーが発生したときに保存を防止する
現在、ViewModelの一部のデータにバインドされているDataGridがあります。行と列にValidationRulesを設定しました。私がしたいのは、検証エラーが発生した場合にユーザーがファイルを保存できないようにすることです。RelayCommandsクラスを使用して、Open、SaveなどのコマンドをViewModelにルーティングしています。
wpf - RelayCommandWPFを実行する前のUI検証
私はWPFを初めて使用し、 RelayCommandを使用してデモアプリケーションを実装しようとしました。
私の質問はこれです:
ユーザーに最初に実行したいかどうかを尋ねるコマンドを実行したい場合、それを実行するための最良の方法は何ですか?「よろしいですか?」が必要です。ポップするメッセージボックス。ただし、コマンドはビューモデルで実行されるため、もちろんGUIをいじりたくありません。
ありがとう