WP7 - 等待启动主页直到异步调用完成

时间:2012-04-05 18:22:35

标签: silverlight windows-phone-7 navigation

我正在制作的应用程序需要在导航到第一页(MainView.xaml)之前从json REST服务获取一些数据。对viewmodels发出请求的控制器类有一些静态列表,这些列表可帮助映射ID(自上次运行以来可能已更改),以便稍后为viewmodel生成REST请求。初始化MainView时,它会立即调用来自此控制器类的信息,这会因为尚未加载ID映射而失败。因此我加载了一个名为LoadingScreen的视图。此视图运行控制器的方法,该方法映射ID,然后将应用程序的视图导航到MainView。

public LoadingScreen()
{
     Dispatcher.BeginInvoke(TVController.populateMaps);
     InitializeComponent();
}

映射ID后,控制器执行此操作

Deployment.Current.Dispatcher.BeginInvoke(() =>
{
     (Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/View/MainView.xaml", UriKind.Relative));
});

但我想避免暂时观看,原因有两个:

  1. 后退按钮会引导用户稍后访问此页面
  2. 编码不好。我只想篡改SplashScreen图像。
  3. 我一直在寻找替代方法,我已经设法阻止WMAppManifest.xml的默认任务导航到LoadingScreen(在App.xaml.cs中)。但是我在控制器类中的断点似乎表明当我从App.xaml.cs运行它时,它的PopulateMaps方法和异步请求都没有做。这是我尝试过的其他内容:

    public App()
    {
         //INITIALIZING THE ELEMENTARY STUFF .......
    
         RootFrame.Navigating += new NavigatingCancelEventHandler(RootFrame_Navigating);
    
    }
    void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
    {
         e.Cancel = true;
         TVController.populateMaps();
    }
    

    我想找到的是一种避免临时加载屏幕的方法。

0 个答案:

没有答案