I'm using Xamarin Forms to develop a Cross-Platform app.
I want to change the Text of the button "Do Something" to something like "Wait", while the code is processing the routine, and back to "Do Something" after the code finish to run.
The problem is: The button text only change after the code is completed.
Simple Exemple:
private void Button_Clicked(object sender, EventArgs e)
{
var btn = (Button)sender;
btn.Text = "Wait";
...some code..
btn.Text = "Do Something";
}
There's some way to "force" the update of Text to "Wait" before the code finish?
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";
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With