質問: WPFでアプリを作成しながら勉強を進めてきたのですが、MVVMの理解も進めようと思いコードの組み換え、作り直しを行い、なんとなくですがバインドの方法等も理解できるようになってきました。 その中で、現在はイベントハンドラはビューに書いており(処理はビューモデル→モデルクラスの流れで書いています)コマンドクラスの実装も行おうと思ったのですがこの部分のイメージがつかめません ボタンを押せばイベントハンドラが呼び出され、処理を実行するやり方と違ってサンプルなどを見るとXAMLにcommand="{Binding commandbutton}"というようにプロパティに紐付けているため流れがつかみにくく、ボタンを押した後にプロパティの中身を見てもtrueやfalseなどの値も代入されておらずボタンを押した際のcommandbuttonというプロパティの動きや働きもよくわかりません コマンドとはどういう役割でどのように扱うのでしょうか? イメージすらわかないので説明をいただけると嬉しいです 変な質問ですいません 宜しくお願い致します
回答: Commandは、 ViewModelのクラスと、ViewのButtonを結びつけるためにある。 ViewModelのメソッドを叩くということをするためのものという印象。 僕は、だいたいこんな感じのスペニッドを使っています。https://qiita.com/kiichi54321/items/89f5a6d265710b51aa0d ``` class XxxxViewModel:ViewModelBase { private void MyMethod() { //ボタンを押したときにすることを書く } #region MyMethod Command /// /// Gets the MyMethod. /// public RelayCommand MyMethodCommand { get { return _MyMethodCommand ?? (_MyMethodCommand = new RelayCommand(() => { MyMethod(); })); } } private RelayCommand _MyMethodCommand; #endregion } ```