C# 导航-PopAsync()似乎不起作用

C# 导航-PopAsync()似乎不起作用,c#,.net,xamarin,C#,.net,Xamarin,我正在使用Xamarin创建一个登录表单,它接受电子邮件、密码字段 用户输入详细信息并单击登录按钮后,将不显示任何警报框。它来自应用程序。代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlTypes; using Xamarin.Forms; using SQLite; using System.IO; namespa

我正在使用Xamarin创建一个登录表单,它接受电子邮件、密码字段

用户输入详细信息并单击登录按钮后,将不显示任何警报框。它来自应用程序。代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlTypes;

using Xamarin.Forms;
using SQLite;
using System.IO;

namespace LoginPage.Views
{
 public class AddDetails : ContentPage
 {
    private Entry _emailEntry;
    private Entry _passwordEntry;
    private Button _saveButton;

    string _dbPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "myDB.db3");
    public AddDetails()
    {
        this.Title = "Add Details";
        StackLayout stackLayout = new StackLayout();



        _emailEntry = new Entry();
        _emailEntry.Keyboard = Keyboard.Text;
        _emailEntry.Placeholder = "Email";
        stackLayout.Children.Add(_emailEntry);


        _passwordEntry = new Entry();
        _passwordEntry.Keyboard = Keyboard.Text;
        _passwordEntry.Placeholder = "Password";
        stackLayout.Children.Add(_passwordEntry);

        _saveButton = new Button();
        _saveButton.Text = "Login User";
        _saveButton.Clicked += _saveButton_Clicked;
        stackLayout.Children.Add(_saveButton);

        Content = stackLayout;
    }

    private async void _saveButton_Clicked(object Sender, EventArgs e)
    {
        var db = new SQLiteConnection(_dbPath);
        db.CreateTable<User>();

        var maxPk = db.Table<User>().OrderByDescending(c => c.Id).FirstOrDefault();

        User user = new User()
        {
            Id = (maxPk == null ? 1 : Convert.ToInt32(maxPk.Id) +1),
            Email = _emailEntry.Text,
            Password = _passwordEntry.Text

        };

        db.Insert(user);
        await DisplayAlert(null, user.Email + "Saved", "Ok");
        await Navigation.PopAsync();
     }

     }
     }
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Data.SqlTypes;
使用Xamarin.Forms;
使用SQLite;
使用System.IO;
命名空间LoginPage.Views
{
公共类AddDetails:ContentPage
{
私人登录(emailEntry);;
私人输入(密码输入);;
私人按钮_saveButton;
字符串_dbPath=Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal),“myDB.db3”);
公共地址详细信息()
{
this.Title=“添加详细信息”;
StackLayout StackLayout=新的StackLayout();
_emailEntry=新条目();
_emailEntry.Keyboard=Keyboard.Text;
_emailEntry.Placeholder=“电子邮件”;
stackLayout.Children.Add(_emailEntry);
_passwordEntry=新条目();
_passwordEntry.Keyboard=Keyboard.Text;
_passwordEntry.Placeholder=“Password”;
stackLayout.Children.Add(_passwordEntry);
_saveButton=新按钮();
_saveButton.Text=“登录用户”;
_saveButton.Clicked+=\u saveButton\u Clicked;
stackLayout.Children.Add(_saveButton);
内容=堆栈布局;
}
私有异步无效\u保存按钮\u单击(对象发送方,事件参数e)
{
var db=新的SQLiteConnection(_dbPath);
db.CreateTable();
var maxPk=db.Table();
用户=新用户()
{
Id=(maxPk==null?1:Convert.ToInt32(maxPk.Id)+1),
Email=\u emailEntry.Text,
Password=\u passwordEntry.Text
};
db.Insert(用户);
等待显示警报(空,user.Email+“已保存”,“确定”);
等待导航。PopAsync();
}
}
}
将显示登录屏幕,但没有应显示电子邮件已保存的警告框。而且,它会突然从应用程序中出现

您设置了吗 MainPage=新导航页面(新页面1xaml())

请点击此链接

如果应用程序正在崩溃,您需要确定原因。使用try/catch捕捉导致崩溃的异常,或使用调试器捕捉它。