如何使用webclient和DownloadString完成windows phone 8

时间:2014-11-14 14:07:27

标签: windows-phone

我有类GetInfo(从服务器获取对象),Page1.xaml,Page2.xaml。我想要从Page1到Page2的传输对象值 这是我的代码

类GetInfo

  Class GetInfo{   
    Info use_info; //(Info is class)
    public GetInfo(Info user_info)
    {
        this.user_info = user_info;
    }

    public void UseWebClient()
    {

        var client = new WebClient();
        client.DownloadStringCompleted += (sender, e) =>
        {
            if (!string.IsNullOrEmpty(e.Result))
                getInfo(e.Result);
        };
        client.DownloadStringAsync(new Uri("http://example.com/user_info.php?id=1"));
    }
    void getInfo()
    {
        I will Parse JSon string get from server become Info object...
    }

}

类Page1.cs //

Info user_info;
GetInfo userInfo;
public Page1()//constructor
{
   userInfo = new GetInfo(user_info);
}
private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
{
   userInfo.UseWebClient();

   //THIS IS PROBLEM
   if(user_info.name != null) //name is public properties;
   {
        PhoneApplicationService.Current.State["user_info"] = user_info;
        NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.Relative));
   }
   else
   {
      MessageBox.Show("Check Connect!", "Warning", MessageBoxButton.OK)
      if(result == MessageBoxResult.OK)
         Application.Current.Terminate();  
   }
}

我知道事件LayoutRoot_Loaded()完成时的DownloadStringCompleted调用。问题是如果LayoutRoot_Loaded()没有完成,我无法移动到Page2。 我需要解决方案来解决问题 谢谢!

0 个答案:

没有答案