Viewから発生したコマンドをViewModelで受け取れるようにします。
ICommandを継承したRelayCommandを作成します。
public sealed class RelayCommand : ICommand
{
}
{
}
実行するメソッドを保存するプロパティを定義します。
private Action ActionMethod { get; set; }
コンストラクタを定義します。
public RelayCommand(Action execute)
{
this.ActionMethod = execute;
}
{
this.ActionMethod = execute;
}
実行するか判断するメソッドを定義します。
public bool CanExecute(object parameter)
{
// 全て実行する。
return true;
}
{
// 全て実行する。
return true;
}
実行するメソッドを定義します。
public void Execute(object parameter)
{
this.ActionMethod();
}
{
this.ActionMethod();
}
ICommandの実行メソッドを定義します。
void ICommand.Execute(object parameter)
{
this.Execute(parameter);
}
{
this.Execute(parameter);
}
使用例
public sealed class MainViewModel : BaseViewModel
{
// ロードコマンド
public ICommand LoadCommand { get; private set; }
// コンストラクタ
public MainViewModel ()
{
// コマンドを作成する。
this.LoadCommand = new RelayCommand(this.OnLoad);
}
//ロード
public void OnLoad()
{
}
}
{
// ロードコマンド
public ICommand LoadCommand { get; private set; }
// コンストラクタ
public MainViewModel ()
{
// コマンドを作成する。
this.LoadCommand = new RelayCommand(this.OnLoad);
}
//ロード
public void OnLoad()
{
}
}