首页 > 解决方案 > 布尔值在设置为 true 后返回 false

问题描述

所以我有一个登录名并且这个显示弹出窗口显示不止一次所以我的逻辑是

创建一个布尔值并检查它是否为真/假,然后显示弹出窗口

所以用户正确登录它导航到主页并

 MainPage.justloggedin = false;

在主页上

 public static bool justloggedin { get; set; } = true; 
 if (justloggedin != true)
 {
    DisplayAlert("Logged in", "Login Process Complete. Welcome", "OK");
    justloggedin = true;
 }

它显示一次,然后如果您转到另一个页面并返回,它会再次显示,然后在第二次显示后不再显示。

我无法理解这个......

登录:

private void Login_Phase2()
        {
            try
            {
                foreach (var user in list)
                {

                    if (user.username == Usernamelabel.Text)
                    {
                        if (Usernamelabel.Text = "TesterDetail")
//This is just for one single Testing account They cant see prices
                        {
                            GlobalVariable.Tester = true;
                            Preferences.Set("CId", user.id.ToString());
                            if (WpApiCredentials.token != null) 
                            Preferences.Set("Token", 
                            WpApiCredentials.token);

                            Application.Current.MainPage = new Home();
                            MainPage.justloggedin = false;

                            Preferences.Set("CUsername", user.username);
                            Preferences.Set("CEmail", user.email);
                            LoggedIn = true;
                            Application.Current.SavePropertiesAsync();
                        }
                        else
                        {
                            GlobalVariable.Tester = false;
                            Preferences.Set("CId", user.id.ToString());
                            if (WpApiCredentials.token != null) 
                            Preferences.Set("Token", 
                            WpApiCredentials.token);
                            Application.Current.MainPage = new Home();
                            MainPage.justloggedin = false;

                            Preferences.Set("CUsername", user.username);
                            Preferences.Set("CEmail", user.email);
                            LoggedIn = true;
                            Application.Current.SavePropertiesAsync();
                        }

                    }

                }

            }

            catch (Exception ex)
            {
                Crashes.TrackError(ex);
            }
        }

上面的部分与其说是登录,不如说是检索正确的客户以从他们那里获取详细信息电子邮件、ID 等安全登录是过程 1

注意:如果您想推荐一种更好的方式来暴露客户所以我可以得到那里的详细信息请做

我遇到了 LinQ 的问题,也将一些变量加倍,所以回到了尴尬的 Foreach

标签: c#xamarin.forms

解决方案


我解决了这个问题。

将分享我所做的但我仍在寻找为什么会发生这种情况的答案。

LoginPhase2(){
 foreach (var user in list)
                {

                    if (user.username == Usernamelabel.Text)
                    {
                        if (Usernamelabel.Text == "TesteDetails")
                        {
                            GlobalVariable.Tester = true;
                            Preferences.Set("CId", user.id.ToString());
                            if (WpApiCredentials.token != null) Preferences.Set("Token", WpApiCredentials.token);

                            App.justloggedin = false;
                            Preferences.Set("CUsername", user.username);
                            Preferences.Set("CEmail", user.email);

                            Application.Current.SavePropertiesAsync();
                        }
                        else
                        {
                            GlobalVariable.Tester = false;
                            Preferences.Set("CId", user.id.ToString());
                            if (WpApiCredentials.token != null) Preferences.Set("Token", WpApiCredentials.token);
                            Application.Current.MainPage = new Home();
                            App.justloggedin = false;
                            Preferences.Set("CUsername", user.username);
                            Preferences.Set("CEmail", user.email);

                            Application.Current.SavePropertiesAsync();
                        }

                    }

                }
                if (App.justloggedin != true)
                {
                    App.justloggedin = true;
                    DisplayAlert("Logged in", "Login Process Complete. Welcome to Mica Market", "OK");
                    Application.Current.MainPage = new Home();
                }
}


推荐阅读