C# 登录后无法导航

C# 登录后无法导航,c#,login,uwp,C#,Login,Uwp,我在进入商店页面之前提出了申请,然后要求首先登录。所以先检查一下。当它登录时,它可以直接导航到Store页面。但是如果没有登录,用户必须登录,单击登录按钮后,它将导航到“存储”页面。同样,如果您想导航到“Koleksi”页面 XAML: 代码: private void store_点击(对象发送方,点击路由数据源) { 如果(((App)(App.Current)).UserName==“登录您的帐户”) { LoginDialog.IsOpen=true; loginDetail.Vis

我在进入商店页面之前提出了申请,然后要求首先登录。所以先检查一下。当它登录时,它可以直接导航到Store页面。但是如果没有登录,用户必须登录,单击登录按钮后,它将导航到“存储”页面。同样,如果您想导航到“Koleksi”页面

XAML:


代码:

private void store_点击(对象发送方,点击路由数据源)
{
如果(((App)(App.Current)).UserName==“登录您的帐户”)
{
LoginDialog.IsOpen=true;
loginDetail.Visibility=Visibility.Collapsed;
loginEnter.Visibility=可见性.Visibility;
emailBox.Text=“”;
passwordBox.Password=“”;
}
其他的
{
此.Frame.Navigate(type of(Store));
}
}
私有void koleksi_Tapped(对象发送器,tappedroutedventargs e)
{
如果(((App)(App.Current)).UserName==“登录您的帐户”)
{
LoginDialog.IsOpen=true;
loginDetail.Visibility=Visibility.Collapsed;
loginEnter.Visibility=可见性.Visibility;
emailBox.Text=“”;
passwordBox.Password=“”;
}
其他的
{
this.Frame.Navigate(typeof(koleksibuku.KolesiPage));
}
}
私有无效登录单击(对象发送者,路由目标)
{
loadingLogin.IsActive=true;
FailedMessage.Visibility=可见性。已折叠;
ProsesLogin();
}
私有异步void ProsesLogin()
{
FailedMessage.Visibility=可见性。已折叠;
loadingLogin.IsActive=true;
尝试
{
var filter=new Windows.Web.Http.Filters.HttpBaseProtocolFilter();
filter.ServerCredential=新的Windows.Security.Credentials.PasswordCredential(“BSE_Win10(1)”、“mahonidatastream”、“Maho1019”);
var client=new Windows.Web.Http.HttpClient(过滤器);
字符串urlPath=”https://...m/user/auth";
var值=新列表
{
新的KeyValuePair(“email”,emailBox.Text),
新的KeyValuePair(“密码”,passwordBox.password)
};
var response=await client.PostAsync(新Uri(urlPath)、新Windows.Web.Http.HttpFormUrlEncodedContent(值));
response.EnsureSuccessStatusCode();
如果(!response.issucessStatusCode)
{
//请求异常();
loadingLogin.IsActive=false;
}
string jsonText=await response.Content.ReadAsStringAsync();
JsonObject-JsonObject=JsonObject.Parse(jsonText);
bool error=jsonObject[“error”].GetBoolean();
//string message=jsonObject[“message”].GetString();
如果(错误==false)
{
LoginDialog.IsOpen=false;
FailedMessage.Visibility=可见性。已折叠;
((App)(App.Current)).UserName=emailBox.Text;
loadingLogin.IsActive=false;
}
其他的
{
FailedMessage.Visibility=可见性.Visibility;
FailedMessage.Text=“电子邮件或密码不能使用/belum terdaftar”;
loadingLogin.IsActive=false;
}
}
捕获(HttpRequestException-ex)
{
//ConnectionException();
loadingLogin.IsActive=false;
}
}
我有一个问题,当点击“商店”或“bukukoleksi”并单击“登录”后,无法导航到页面“商店”页面或“Koleksi”页面。必须再次点击“商店”或“koleksibuku”才能导航到“商店”和“Koleksi”页面。 如何处理

我有一个问题,当点击“商店”或“bukukoleksi”并单击“登录”后,无法导航到页面“商店”页面或“Koleksi”页面

导航操作由点击的
事件调用,单击
loginBtn
后,导航操作不应自动触发。处理此问题的一个简单方法是创建bool变量,以在单击
loginbtn
之前标记要点击的图像。例如,创建了两个变量
isstoreTapped
iskoleksiTapped
,一旦存储tapped,将
isstoreTapped
设置为true,与“koleksi”相同。登录后,通过两个标志判断要导航的页面

  bool isstoreTapped = false;
  bool iskoleksiTapped = false;
  private void loginBtn_Click(object sender, RoutedEventArgs e)
  {
      loadingLogin.IsActive = true;
      FailedMessage.Visibility = Visibility.Collapsed;
      ProsesLogin();
      if(isstoreTapped==true)
      {
          this.Frame.Navigate(typeof(Store));
      }
      if(iskoleksiTapped==true)
      {
          this.Frame.Navigate(typeof(koleksibuku.KolesiPage));
      }

  }

  private void store_Tapped(object sender, TappedRoutedEventArgs e)
  {
      if (((App)(App.Current)).UserName == "Sign in to your account")
      {
          LoginDialog.IsOpen = true;
          loginDetail.Visibility = Visibility.Collapsed;
          loginEnter.Visibility = Visibility.Visible;
          emailBox.Text = "";
          passwordBox.Password = "";
          isstoreTapped = true;
          iskoleksiTapped = false;
      }
      else
      {
          this.Frame.Navigate(typeof(Store));
      }
  }

  private void koleksi_Tapped(object sender, TappedRoutedEventArgs e)
  {
      if (((App)(App.Current)).UserName == "Sign in to your account")
      {
          LoginDialog.IsOpen = true;
          loginDetail.Visibility = Visibility.Collapsed;
          loginEnter.Visibility = Visibility.Visible;
          emailBox.Text = "";
          passwordBox.Password = "";
          iskoleksiTapped = true;
          isstoreTapped = false;
      }
      else
      {
          this.Frame.Navigate(typeof(koleksibuku.KolesiPage));
      }
  }
private void store_Tapped(object sender, TappedRoutedEventArgs e)
        {
            if (((App)(App.Current)).UserName == "Sign in to your account")
            {
                LoginDialog.IsOpen = true;
                loginDetail.Visibility = Visibility.Collapsed;
                loginEnter.Visibility = Visibility.Visible;
                emailBox.Text = "";
                passwordBox.Password = "";
            }
            else
            {
                this.Frame.Navigate(typeof(Store));
            }
        }

        private void koleksi_Tapped(object sender, TappedRoutedEventArgs e)
        {
            if (((App)(App.Current)).UserName == "Sign in to your account")
            {
                LoginDialog.IsOpen = true;
                loginDetail.Visibility = Visibility.Collapsed;
                loginEnter.Visibility = Visibility.Visible;
                emailBox.Text = "";
                passwordBox.Password = "";
            }
            else
            {
                this.Frame.Navigate(typeof(koleksibuku.KolesiPage));
            }
        }

private void loginBtn_Click(object sender, RoutedEventArgs e)
        {
            loadingLogin.IsActive = true;
            FailedMessage.Visibility = Visibility.Collapsed;
            ProsesLogin();
        }

        private async void ProsesLogin()
        {
            FailedMessage.Visibility = Visibility.Collapsed;
            loadingLogin.IsActive = true;
            try
            {
                var filter = new Windows.Web.Http.Filters.HttpBaseProtocolFilter();
                filter.ServerCredential = new Windows.Security.Credentials.PasswordCredential("BSE_Win10(1)", "mahonidatastream", "Maho1019");
                var client = new Windows.Web.Http.HttpClient(filter);
                string urlPath = "https://...m/user/auth";
                var values = new List<KeyValuePair<string, string>>
                {
                    new KeyValuePair<string, string>("email", emailBox.Text),
                    new KeyValuePair<string, string>("password",passwordBox.Password)
                };
                var response = await client.PostAsync(new Uri(urlPath), new Windows.Web.Http.HttpFormUrlEncodedContent(values));
                response.EnsureSuccessStatusCode();

                if (!response.IsSuccessStatusCode)
                {
                    //RequestException();
                    loadingLogin.IsActive = false;
                }

                string jsonText = await response.Content.ReadAsStringAsync();

                JsonObject jsonObject = JsonObject.Parse(jsonText);
                bool error = jsonObject["error"].GetBoolean();
                //string message = jsonObject["message"].GetString();
                if (error == false)
                {
                    LoginDialog.IsOpen = false;
                    FailedMessage.Visibility = Visibility.Collapsed;
                    ((App)(App.Current)).UserName = emailBox.Text;
                    loadingLogin.IsActive = false;
                }
                else
                {
                    FailedMessage.Visibility = Visibility.Visible;
                    FailedMessage.Text = "Email atau password tidak sesuai/belum terdaftar";
                    loadingLogin.IsActive = false;
                }

            }
            catch (HttpRequestException ex)
            {
                //ConnectionException();
                loadingLogin.IsActive = false;
            }
        }
  bool isstoreTapped = false;
  bool iskoleksiTapped = false;
  private void loginBtn_Click(object sender, RoutedEventArgs e)
  {
      loadingLogin.IsActive = true;
      FailedMessage.Visibility = Visibility.Collapsed;
      ProsesLogin();
      if(isstoreTapped==true)
      {
          this.Frame.Navigate(typeof(Store));
      }
      if(iskoleksiTapped==true)
      {
          this.Frame.Navigate(typeof(koleksibuku.KolesiPage));
      }

  }

  private void store_Tapped(object sender, TappedRoutedEventArgs e)
  {
      if (((App)(App.Current)).UserName == "Sign in to your account")
      {
          LoginDialog.IsOpen = true;
          loginDetail.Visibility = Visibility.Collapsed;
          loginEnter.Visibility = Visibility.Visible;
          emailBox.Text = "";
          passwordBox.Password = "";
          isstoreTapped = true;
          iskoleksiTapped = false;
      }
      else
      {
          this.Frame.Navigate(typeof(Store));
      }
  }

  private void koleksi_Tapped(object sender, TappedRoutedEventArgs e)
  {
      if (((App)(App.Current)).UserName == "Sign in to your account")
      {
          LoginDialog.IsOpen = true;
          loginDetail.Visibility = Visibility.Collapsed;
          loginEnter.Visibility = Visibility.Visible;
          emailBox.Text = "";
          passwordBox.Password = "";
          iskoleksiTapped = true;
          isstoreTapped = false;
      }
      else
      {
          this.Frame.Navigate(typeof(koleksibuku.KolesiPage));
      }
  }