2012-09-13 84 views
0

從一頁到下一頁,有一個屬性在用戶界面中綁定,這個屬性需要一個浪費時間的操作,所以頁面不會很長時間,是有什麼辦法可以提高速度。窗口手機頁面加載速度

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(); } 

在視圖模型是這樣的:

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; 
     }); } } 

回答

0

有一個關於如何處理這種情況與績效進度條與長時間運行的Web服務進行交互時,一個很好的文章與範例調用available here代碼在文章頁面的底部。

爲了引用Dan Clarke的話:「我非常喜歡在Windows Phone 7應用程序中使用全局性能進度條,因此用戶在與Web服務交互時具有一致的參考框架,要求很簡單,在沒有任何特殊要求的情況下出現在所有頁面上的進度條(即沒有自定義控件,特殊代碼片段等),應該在一個地方進行管理,並且易於擴展幸運的是,Silverlight提供的極高靈活性使得這個工具變得輕而易舉:「Source

此選項至少會讓您使用一個想法,即頁面正在加載的最低限度。