Windows phone windows phone页面加载速度
从一个页面到下一个页面,UI中绑定了一个属性,这个比例需要花费一次浪费时间的操作,所以页面不会长时间出现,有没有办法提高速度Windows phone windows phone页面加载速度,windows-phone,Windows Phone,从一个页面到下一个页面,UI中绑定了一个属性,这个比例需要花费一次浪费时间的操作,所以页面不会长时间出现,有没有办法提高速度 protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { string value = string.Empty; IDictionary<string, string> queryString = this.Navigati
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(); }
受保护的覆盖无效OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e){
字符串值=string.Empty;
IDictionary queryString=this.NavigationContext.queryString;
if(queryString.ContainsKey(“类型”))
{
this.Type=queryString[“Type”];
新线程(()=>{
mtv.AddDistanceForList();
}).Start();
}
其他的
{
GetMovieThreater();
}
base.OnNavigatedTo(e);}
私有无效GetMovietThreater(){
string movieId=PhoneApplicationService.Current.State[“movieId”]作为字符串;
mtv.选择威胁视频(电影ID);
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;
}); } }
私人可观察收集威胁;公众可观察到的收集威胁{
获取{return threaters;}
设置
{
如果(威胁者!=值)
{
威胁=价值;
通知财产变更(“威胁者”);
}
} }
私有收集ViewSource FilteredThreeter;公共集合ViewSource FilteredThreader{
获取{return filteredthreader;}
设置
{
过滤水=数值;
NotifyPropertyChanged(“过滤水”);
}}此函数等待时间!!!public void SelectThreaterByMovie(字符串电影ID){
Threaters.Clear();
if(MovieDataAllMovies.Threaters!=null)
{
foreach(MovieDataAllMovies.MoviePlans中的var i){
如果(i.MovieId==MovieId)
{
MovieDataAllMovies.Threaters.ForEach((e)=>
{
if(i.theateId==e.Tid.ToString())
{
威胁者。添加(e);
}
});
}
}
Deployment.Current.Dispatcher.BeginInvoke(()=>
{
this.filteredthreader.Source=威胁者;
}); } }
有一篇非常好的文章,介绍了在与长时间运行的Web服务调用交互时如何使用性能进度条处理这种情况,文章页面底部有示例代码
引用Dan Clarke的话,“我非常希望在我的Windows Phone 7应用程序中有一个全局性能进度条,这样当我与web服务交互时,用户有一个一致的参考框架。要求很简单,一个在所有页面上显示的进度条,没有任何特殊要求(即,没有自定义控件、特殊代码段等)。它应该在一个地方进行管理,并且易于扩展。幸运的是,Silverlight提供的极大灵活性使这成为一个棘手的问题:
这个选项至少会让你的用户知道页面是以最小的速度加载的