2017-06-29 29 views
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)); 
} 
+0

你试过把一个breakpointer在menupage的构造,看看你得到任何价值吗? –

+0

是的,它给了我我想要的值...问题是当我退出构造函数....在线等待Navigation.PushAsync(new NewInfraccionPage(usuariosMovil))....变量usersMovil需要值null @JordyDieltjens –

回答

0

发现你的问题。您在menupage的构造函数中忘记了名为usuarioMovil的变量。

只需添加以下行: this.usuarioMovil = usuarioMovil;

我希望解决您的问题;)

相关问题