首页 > 解决方案 > 当我选择否时,显示警报消息显示两次,为什么?当我选择否时,如何只显示一次警报?

问题描述

公共异步无效 clearswitchHandle_Toggled(对象发件人,Xamarin.Forms.ToggledEventArgs e){

        var yesSelected = await DisplayAlert("WARNING!!!", "Are you sure you want to CLEAR DATA entered", "YES", "NO");
        if (yesSelected == true)
        {
            clearButton.IsEnabled = true;
        }

        else 
        {
            clearSwitch.IsToggled = false;

        }

    }

标签: xamarin

解决方案


尝试锁定这个异步方法,它可能会被多次调用:

private bool lockAlert;
public async void Handle_Toggled(object sender, Xamarin.Forms.ToggledEventArgs e) 
{
        if (lockAlert) return;
        lockAlert=true;

        var ok = await DisplayAlert("WARNING!!!", "Are you sure you want to CLEAR DATA entered", "YES", "NO");
        if (ok)
        {
            clearButton.IsEnabled = true;
        }
        else 
        {
            clearSwitch.IsToggled = false;
        }

        lockAlert=false;
    }

推荐阅读