Commandパラメータの受け取り方
画面に複数のボタンを配置して、バインド先のメソッドは1つにして、
CommandParameterの値で押下したボタンを判別する場合。
ネットで探してもなぜかすぐには見つからなかったので、メモしときます。
※「DialogButtonType」は列挙体 <Button Command="{Binding Source={x:Reference Dialog}, Path=DialogOkCommand}" CommandParameter="{x:Static local:DialogButtonType.DialogOkButon}" ・・・ > <Button Command="{Binding Source={x:Reference Dialog}, Path=DialogOkCommand}" CommandParameter="{x:Static local:DialogButtonType.DialogCancelButon}" ・・・ >
ViewModelの変数定義
public ICommand DialogOkCommand { get; }
ViewModelのコンストラクタ
this.DialogOkCommand = new Command((sender) => this.OnDialogOkCommandClicked(sender));
ViewModelのメソッドの定義
private void OnDialogOkCommandClicked(DialogButtonType sender) { clickButton = sender; }