0
我正在开发一个PCL应用程序在Xamarin中...我想将一个变量从一个页面传递给另一个...该变量是“usersMovil”,虽然在方法构造函数MenuPage(UsuariosMovil usuariosMovil)映射....当它离开不再可用,并认为它为空....我想从LoginPage ----> MenuPage ....通过任何帮助给我?从参数到页的步骤(Xamarin应用程序)
public LoginPage()
{
InitializeComponent();
enterButton.Clicked += enterButton_Clicked;
}
private async void enterButton_Clicked(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(userEntry.Text))
{
await DisplayAlert("Error", "Debe Ingresar un Usuario", "Aceptar");
userEntry.Focus();
return;
}
if (string.IsNullOrEmpty(passwordEntry.Text))
{
await DisplayAlert("Error", "Debe Ingresar un Usuario", "Aceptar");
userEntry.Focus();
return;
}
waitActivityIndicator.IsRunning = true;
string result;
try
{
enterButton.IsEnabled = false;
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://200.27.70.5/web_sit2/");
string url = string.Format("api/UsuariosMovilsAPI/{0}/{1}", userEntry.Text, passwordEntry.Text);
var response = await client.GetAsync(url);
result = response.Content.ReadAsStringAsync().Result;
enterButton.IsEnabled = true;
waitActivityIndicator.IsRunning = false;
}
catch (Exception ex)
{
await DisplayAlert("Error", "No hay Conexión...", "Aceptar");
enterButton.IsEnabled = true;
waitActivityIndicator.IsRunning = false;
return;
}
waitActivityIndicator.IsRunning = false;
if (string.IsNullOrEmpty (result) || result == "null")
{
await DisplayAlert("Error", "Usuarios y/o Password NO válido", "Aceptar");
passwordEntry.Text = string.Empty;
passwordEntry.Focus();
return;
}
var usuariosMovil = JsonConvert.DeserializeObject<UsuariosMovil>(result);
await Navigation.PushAsync(new MenuPage(usuariosMovil));
}
一个Web服务,负责将已输入到系统中的用户和密码的,这个想法是通过页面之间的变量,但在event infractionButton_Clicked (object sender, EventArgs e)
,变量usersMovil
取和取值null
。
public UsuariosMovil usuariosMovil;
public int UsuarioMovilID;
public MenuPage(UsuariosMovil usuarioMovil)
{
InitializeComponent();
UsuarioMovilID = usuarioMovil.UsuarioMovilID;
titleLabel.Text = string.Format("[email protected] {0} {1}", usuarioMovil.Nombre, usuarioMovil.Apellido);
infraccionButton.Clicked += infraccionButton_Clicked;
consultarButton.Clicked += consultarButton_Clicked;
actualizarButton.Clicked += actualizarButton_Clicked;
}
private async void actualizarButton_Clicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new ActualizarPage());
}
private async void consultarButton_Clicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new ConsultarPage());
}
private async void infraccionButton_Clicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new NewInfraccionPage(usuariosMovil));
}
你试过把一个breakpointer在menupage的构造,看看你得到任何价值吗? –
是的,它给了我我想要的值...问题是当我退出构造函数....在线等待Navigation.PushAsync(new NewInfraccionPage(usuariosMovil))....变量usersMovil需要值null @JordyDieltjens –