2

我的 Viewmodel 有一个事件

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 回答