C# 导航-PopAsync()似乎不起作用
我正在使用Xamarin创建一个登录表单,它接受电子邮件、密码字段 用户输入详细信息并单击登录按钮后,将不显示任何警报框。它来自应用程序。代码如下: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
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捕捉导致崩溃的异常,或使用调试器捕捉它。