查看模型事件绑定到按钮单击

发布于 2024-12-27 14:58:24 字数 169 浏览 1 评论 0原文

我的视图模型有一个事件,

public class TestViewModel 
{
    public event RoutedEventHandler Run;
}

我想在用户单击视图中的按钮时触发此事件

如何将其与视图中的按钮绑定?

My Viewmodel has an event

public class TestViewModel 
{
    public event RoutedEventHandler Run;
}

I wanna trigger this event when user clicked on a button in view

How to bind this with a button in a view ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

祁梦 2025-01-03 14:58:24

路由事件适用于控件而不是视图模型,如果您有一些应该在在我看来,按钮单击 命令 会更合适,它可以轻松绑定到 <一个href="http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.buttonbase.command.aspx">Button.Command

Routed events are meant for controls not view models, if you have something that should be executed upon a button click a command would be more suitable in my opinion, it can easily be bound to the Button.Command.

雪花飘飘的天空 2025-01-03 14:58:24

我认为,您应该使用 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}" />

I think, you should use DelegateCommand for such behavior.

In your View Model:

private DelegateCommand _runCommand;
public DelegateCommand RunCommand
{
    get
    {
        if (_runCommand == null)
            _runCommand = new DelegateCommand(Run, CanRun);

        return _runCommand;
    }
}

void Run()
{
    ... 
}

bool CanSaveAction()
{
    return true;
}

On your page:

<Button Command="{Binding RunCommand}" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文