Xamarin表格在等待时改变按钮的文本

Leo*_*ida 6 c# button xamarin xamarin.forms

我正在使用Xamarin Forms开发跨平台应用程序.

我想将"Do Something"按钮的文本更改为"Wait",而代码正在处理例程,并在代码完成运行后返回"Do Something".

问题是:按钮文本仅在代码完成后更改.

简单的例子:

private void Button_Clicked(object sender, EventArgs e)
{
    var btn = (Button)sender;
    btn.Text = "Wait";

    ...some code..

    btn.Text = "Do Something";
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在代码完成之前"强制"将文本更新"等待"?

Yur*_*i S 5

    private async void Btn1_Clicked(object sender, EventArgs e)
    {
       btn1.Text = "Wait";

        await Task.Run(async () =>
        {
            for (int i = 1; i <= 5; i++)
            {
                //if your code requires UI then wrap it in BeginInvokeOnMainThread
                //otherwise just run your code
                Device.BeginInvokeOnMainThread(() =>
                {
                    btn1.Text = $"Wait {i}";
                });
                await Task.Delay(1000);
            }
        });

        btn1.Text = "Done";


    }
Run Code Online (Sandbox Code Playgroud)