【问题标题】:how to execute command before eventhandler如何在事件处理程序之前执行命令
【发布时间】:2017-01-09 07:24:37
【问题描述】:

按钮的事件处理程序

private async void Btn_Clicked(object sender, EventArgs e)
{

}

我也有命令viewModel内的同一个按钮

public Command LoginCommand
{
    get
    {
        return new Command(async () =>
        {

        });
    }

}

问题是我想在命令内部返回的值(从 Api 消耗)上使用validation,导航位于事件处理程序内,因此它在验证之前导航,因此如何在事件处理程序之前执行命令

【问题讨论】:

  • 您的验证方案是什么?如果单击按钮?还有什么按钮?
  • 我不明白为什么你会在同一个按钮上有一个命令和一个点击事件?出于 UI 目的(如果已登录,则为绿色按钮,如果未登录,则为红色)如果使用 Mvvm,我不会这样做
  • @Valkyriee 在 btnClicked 事件处理程序中有验证条件和导航,在 VM 内部的命令中,我从 API 返回数据这些数据将在事件处理程序内部检查,但发生了什么调试的本质是在实现命令内部的内容之前进入导航和条件

标签: c# xamarin xamarin.forms cross-platform


【解决方案1】:

Commands 有一个可用于验证的CanExecute 方法。您将谓词传递给构造函数,如果您要调用,它将执行该谓词

LoginCommand.CanExecute(this);

您可以将任何object 传递到该方法中。

这似乎最适合你。

【讨论】:

    猜你喜欢
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多