2017-06-29 27 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;

我希望解決您的問題;)

相關問題