私のビューモデルにはイベントがあります
public class TestViewModel
{
public event RoutedEventHandler Run;
}
ユーザーがビュー内のボタンをクリックしたときにこのイベントをトリガーしたい
ビューのボタンでこれをバインドする方法は?
私のビューモデルにはイベントがあります
public class TestViewModel
{
public event RoutedEventHandler Run;
}
ユーザーがビュー内のボタンをクリックしたときにこのイベントをトリガーしたい
ビューのボタンでこれをバインドする方法は?
ルーティングされたイベントは、モデルを表示するのではなく、コントロールを対象としています。ボタンをクリックしたときに実行する必要があるものがある場合は、コマンドの方が適していると思います。簡単にバインドできますButton.Command
。
このような動作には、DelegateCommandを使用する必要があると思います。
ビューモデルの場合:
private DelegateCommand _runCommand;
public DelegateCommand RunCommand
{
get
{
if (_runCommand == null)
_runCommand = new DelegateCommand(Run, CanRun);
return _runCommand;
}
}
void Run()
{
...
}
bool CanSaveAction()
{
return true;
}
あなたのページ:
<Button Command="{Binding RunCommand}" />