問題タブ [delegatecommand]

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 投票する
1 に答える
1593 参照

c# - MVVM でのイベント処理

MVVM では、モデルには通常データ モデルがあり、ビューはプロパティ VM にさらにバインドされる UI (XAML) であり、通常は INotifyPropertyChanged を継承する ViewModel です。

イベント処理に関して、UI ですべてのイベントを処理するための特定のパターンはありますか? 例:保存/新規/閉じるボタンまたはその他のボタンがある場合...そして、ユーザーが何らかの操作を行い、ボタンのいずれかをクリックしたときに、コントロールがコードビハインドに移動し、目的の操作を実行する必要があるとします。 .. イベント処理が適切に行われたことを確認するにはどうすればよいですか? どのインターフェイスを使用する必要がありますか / いつ、どのように使用しますか?

ICommandインターフェイス/リレーコマンド/デリゲートコマンドがあるように...私はこれについて明確ではありません..

私の質問へのあなたの応答を前もって感謝します...

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

wpf - WPF DelegateCommand RaiseCanExecute

カスタム デリゲートコマンドを使用しようとしています

ただし、自動 RaiseCanExecuteChanged は正しく機能しません。CommandManagerHelper を使用するのは良いことですか (アプリケーションがフォーカスされるたびに、すべてのコマンドに対して canexecute changed を発生させますか? または、standart RelayCommand を使用して自分で canexecutechanged を発生させる必要がありますか?

ありがとう

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

wpf - 行 WPF をダブルクリックすると、2 番目の DataGrid にデータが入力されます

私はまだwpfとMVVMに少し慣れていません。そのパターンを壊さずに解決策をコーディングしようとしています。私は 2 つ (まあ 3 つですが、この質問の範囲では 2 つだけ) を持っていDataGridます。1 つの行をダブルクリックし、そのデータを 2 番目の行にロードしますDataGrid(理想的には、データをロードする 2 番目のスレッドをスピンアップします)。これまでのところ、行をダブルクリックするとウィンドウがポップアップ表示されます。イベントのコードを xaml の分離コードに挿入します。私には、それは非常に窓のように思えます。どういうわけか、私はそれがパターンを大きく壊しているように感じます。

これはコード ビハインドのイベントのコードで、xaml のグリッド定義は次のとおりです。

このコードは MainWindowViewModel に入れる必要があると考えています。だから私はコマンドを作成しようとしています:

および同じイベント ハンドラー:

しかし、ICommandは を返すときに例外をスローしていますDelegateCommand(OnDoubleClickPopRow)

ええと、引数の数が一致していないことは明らかです。何か間違ったことをしていることはわかっていますが、それが何であるかはよくわかりません。これについては引き続き調査しますが、皆様のご協力をいただければ幸いです。

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

wpf - WPF & MVVM: テキスト ボックスから値を取得して ViewModel に送信する

ボタンを押すと、2 つの Texbox の値を取得しようとしています (ログイン ウィンドウをシミュレートしています)。ボタンに割り当てられたコマンドは正しく起動しますが、「ログイン」を行うためのテキストボックスの値を取得する方法がわかりません。

これは私のビューモデルです:

これはビューです:

誰かが助けてくれたら...私は無限に感謝します.

0 投票する
4 に答える
2211 参照

c# - WPF MVVMのDeleagteコマンドから呼び出される関数でパラメータのオブジェクト型を渡す

次の関数が WPF MVVM のパラメータのオブジェクト型を取るのはなぜですか?

デフォルトでは、NULL が渡されるため、関数のパラメーターとして何も渡しません。

何も渡したくない場合は、関数からパラメーターを削除することをお勧めします。しかし、それは許されません。なんで?

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

c# - DelegateCommand別のCanSee関数でCanExecute を除く

各項目にヘッダー、コマンドがあり、コマンドを実行できるコンテキストメニュー項目のコレクションを作成し、「canExecute」のような機能であるが他の条件を持つ可視性のための新しい機能を追加したいと考えています。

行を押しているときDataGridに、コンテキスト メニュー項目 source( ) にバインドされたコレクション コンテキスト メニュー項目を持つ新しいコンテキスト メニューを作成したいと考えていますItemContainerStyle。各メニュー項目で 2 つの機能を実行したい:

  1. CanExecute- アイテムの無効化/有効化
  2. CanSee- コンテキスト メニュー項目がアイテムに関連していない場合に、コンテキスト メニュー項目の可視性を変更するため。

それを行う最良の方法は何ですか?

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

c# - ICommandSource と DelegateCommand

いくつかのコマンドでユーザーコントロールを作成しようとしています。ここに示すアプローチを使用して xaml でコマンドを接続するとhttp://msdn.microsoft.com/en-us/library/vstudio/ms771361(v=vs.90).aspx動作しますが、DelegateCommand を使用するとPrism ライブラリ CanExecuteChanged がユーザー コントロールで起動せず、その理由がわかりません。申し訳ありませんが、これは多くのコードです。Execute は正しく起動しますが、CanExecute は起動しません。

前もって感謝します。

カスタム コントロール Xaml

カスタム コントロール コード ビハインド

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

c# - 委任されたコマンドは機能したくない

それはまた長いコーディングの日であり、私はおそらく何かを見過ごしています。しかし、私は逃したものを理解することはできません

ViewModel の C# コード

Xaml コード:

そのため、MainWindow テキスト ボックスは、C# コンストラクターで設定したものから表示されているので、データ コンテキストが正常に機能していることがわかります。ボタンをクリックしたときに委任されたコマンドを起動できない理由がわかりません。

私はこれがおそらく本当にばかげていることを知っています。それは単純なことですが、この画面を50分間見つめていて、エラーを探しすぎています。特に私がこれを100回行ったとき、それは私のソリューション全体の他のコントロールにあります

みんなありがとう。

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

c# - モデルが変更されたときに CanExecuteChanged を発生させる

私のViewModel中には、ObservableCollectionPersonを実装するINotifyPropertyChanged)オブジェクトとSelectedPersonプロパティがあります。これらは私のビューで ListBox にバインドされています。

ViewModel には次の Prism DelegateCommand もあります。

が変更され、年齢が変更SelectedPersonれるたびに MyCommand.RaiseCanExecuteChanged を呼び出す最もエレガントな方法は何ですか?SelectedPerson

のセッターでプロパティが変更されたハンドラーを追加および削除するSelectedPersonのは、私には少し面倒です。