2

私のビューモデルにはイベントがあります

public class TestViewModel 
{
    public event RoutedEventHandler Run;
}

ユーザーがビュー内のボタンをクリックしたときにこのイベントをトリガーしたい

ビューのボタンでこれをバインドする方法は?

4

2 に答える 2

6

ルーティングされたイベントは、モデルを表示するのではなく、コントロールを対象としています。ボタンをクリックしたときに実行する必要があるものがある場合は、コマンドの方が適していると思います。簡単にバインドできますButton.Command

于 2012-01-15T18:37:12.867 に答える
1

このような動作には、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}" />
于 2012-01-15T19:18:44.657 に答える