windows手机页加载速度

时间:2012-09-13 15:24:49

标签: windows-phone

从一个页面到下一个页面,有一个属性绑定在UI中,这个比例需要花费一个浪费时间操作,所以页面不会很长时间,有没有办法改进速度。

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) {
    string value = string.Empty;
    IDictionary<string, string> queryString = this.NavigationContext.QueryString;
    if (queryString.ContainsKey("Type"))
    {
        this.Type = queryString["Type"];
        new Thread(() => {
            mtv.AddDistanceForList();
        }).Start();

    }
    else
    {
            GetMovieThreater();
    }
    base.OnNavigatedTo(e); }  

private void GetMovieThreater() {
    string movieId = PhoneApplicationService.Current.State["MovieId"] as string;

    mtv.SelectThreaterByMovie(movieId);
    mtv.AddDistanceForList();  }

在这样的View模型中:

private ObservableCollection<Threater> threaters; public ObservableCollection<Threater> Threaters {
    get { return threaters; }
    set
    {
        if (threaters != value)
        {
            threaters = value;
            NotifyPropertyChanged("Threaters");
        }
    } }

private CollectionViewSource filteredThreater; public CollectionViewSource FilteredThreater {
    get { return filteredThreater; }
    set
    {
        filteredThreater = value;
        NotifyPropertyChanged("FilteredThreater");
    } } This function wate time!!! public void SelectThreaterByMovie(string movieId) {
    Threaters.Clear();

    if(MovieDataAllMovies.Threaters!=null)
    {
      foreach(var i in MovieDataAllMovies.MoviePlans){
          if (i.MovieId == movieId)
          {
              MovieDataAllMovies.Threaters.ForEach((e) =>
              {
                  if (i.TheaterId == e.Tid.ToString())
                  {
                      Threaters.Add(e);
                  }
              });
          }
      }
      Deployment.Current.Dispatcher.BeginInvoke(() =>
      {
          this.FilteredThreater.Source = Threaters;
      });    } }

1 个答案:

答案 0 :(得分:0)

在与文章页面底部的示例代码进行长时间运行的Web服务调用available here进行交互时,有一篇关于如何使用性能进度条处理此类情况的非常好的文章。

引用丹·克拉克的话,“我非常希望在我的Windows Phone 7应用程序中拥有一个全球性的绩效进度条,这样当我与网络服务交互时,用户就有了一致的参考框架。要求很简单,一个进步所有页面上都显示没有任何特殊要求的栏(即没有自定义控件,特殊代码片段等)。它应该在一个地方进行管理,并且易于扩展。幸运的是,Silverlight提供的极大灵活性使这一点变得轻而易举: “Source

此选项至少可以让您使用该页面正在加载的想法。