私は、人々がコードでCanExecuteのようなメソッドを作成しているチュートリアルを見てきました。私は、読者がそのすべての仕組みを理解するのを助けるために、これをやっていると仮定しています。私がCommandとICommandを調べると、MSDNのICommandクラスがWindows Storeアプリケーションに使用されます。 WPF用のCommandクラスはありませんか?MVVMのコマンド
答えて
WPFでのICommand
の組み込み実装は、RoutedCommand
(およびその兄弟RoutedUICommand
)です。このようなRoutedCommand
作品:典型的な ICommand
の場合と同様にRoutedCommand
上
Execute
とCanExecute
方法は コマンドのためのアプリケーションロジックが含まれていないが、むしろ、これらの方法は を通過するイベントを上げます要素ツリーはCommandBinding
のオブジェクトを探します。CommandBinding
に接続されたイベント ハンドラには、コマンドロジックが含まれています。
これに伴う問題は、これらのイベントハンドラは、あなたがはMVVMでやりたいではない何をすべきか正確には、あなたのビュー、のためにコードビハインドに添付しなければならないということです。あなたは、コード内CanExecute
方法を参照してください
チュートリアルは、カスタムコマンドの実装を使用している(とそれによって私たちは本当にICommand
実装外のコードを意味する)のようなDelegateCommand
とする「前方」、そのCanExecute
/Execute
ロジックに設計されていますRelayCommand
オンザフライで提供される機能。通常は、コマンドを公開するビューモデル上のメソッドです。
これらの実装は通常MVVMフレームワークによって提供されます(これらの2つの例ではフレームワークはそれぞれPrismとMVVM Lightです)が、実際は単純です(どちらもオープンソースでコードを取得して読み込みます)フレームワークの全体が必要でない場合は、コードをコピー/貼り付けることができます。
あなたは「そこは組み込みコマンドクラスWPFでですが、それはMVVMのコンテキストで非常に便利ではありません」として上記をまとめることができます。
- 1. コマンドMVVM
- 2. コマンドなしのMVVM
- 3. コマンドとMVVMの原則 - RelayCommands
- 4. Caliburn.Micro、MVVMパターン:CanExecuteコマンドが
- 5. MVVMコマンドのUWPツールキットハンバーガーメニューへのバインド
- 6. WPF MVVMコマンドとイベントハンドラの使用
- 7. MVVMアプリケーションの関連コマンドを表示
- 8. WPF MVVMコマンドが動作しません
- 9. ピッカーをmvvmコマンドにバインドするXamarin forms
- 10. MVVMを使用したWPFのViewModelからのコマンドのトリガー
- 11. Josh SmithのMVVM Demo App:MainWindowViewModelのコマンドリストにコマンドを追加
- 12. MVVMとより多くのGUIを表示するコマンド
- 13. ListViewがDoubleClickedのときにコマンドを実行する。 (WPF - MVVM)
- 14. MVVMのユーザーコントロールとメイン間でコマンドをリンクする方法
- 15. mvvm wpfモデルのrelayコマンドを破棄する方法
- 16. ボタンがコマンドを実行しませんMVVM WPF
- 17. wpf mvvmコマンドを使用してビューモデル間でパラメータを渡す
- 18. MVVMで表示するコマンドを与えてください
- 19. MVVM Foundation対MVVMツールキット
- 20. MVVm
- 21. MVVM
- 22. MVVM
- 23. リストビューの検索バーの検索コマンドをmvvmパターンで使用する
- 24. UVMのMVVMパターンチュートリアルですが、コマンドをバインドするのはなぜですか?
- 25. 添付プロパティ、コマンドなどのMVVM WPFアプリケーションの定型コードを減らす?
- 26. WPF Prsim MVVMアプリケーション、複数のビュー、コマンドとイベントを混乱させる
- 27. UWP iがUWPでAutoSuggestBoxコントロールのQuerySubmittedコマンドを呼び出していますMVVM
- 28. MVVMのWPFチャートコントロール
- 29. MVVMのスタイリングボタン
- 30. MVVMコンボボックスのバインド
新しいOPがMVVMにどのようになっているかによって、特定のMVVMフレームワークを使用せずにDelegateCommandの独自のバージョンを非常に簡単に実装できることに注意してください。 – Thelonias
@ライアン:ありがとう、私は答えのいくつかの編集を終了し、今あなたの提案を反映しています。 – Jon
DelegateCommandは私が使用するためにMicrosoftから提供されていますか?これは私の最初のWPFアプリケーションと私の最初のMVVMアプリケーションです。私は数年前からWinFormsを使用してきましたが。これまでのところ、私はWPFが本当に好きです!これは私の最初のMVVMアプリケーションなので、私はむしろすべてのコードを自分で作成し、MVVM Lightのようなフレームワークは使用しないので、すべての動作をよりよく理解することができます。 – tylerbhughes