2013-03-15 70 views
0

我想开始我的进度条,并在数据加载后停止它。问题是我怎么能在Windows手机另一个类停止windows phone中的进度条

这是我的,我宣布在XAML进度条第一类:

public class panorama 
    { 
     progressBar.IsIndeterminate = true; 
     progressBar.Visibility = System.Windows.Visibility.Visible; 
     App.PanoramaViewModel.LoadData(); 
    } 

,这是我第二类

public class panoramaviewmodel 
    { 
     public void LoadData() 
     { 
     } 
    } 

我喜欢停止进度条panoramaviewmodel。如何解决这个问题?

回答

0

绑定控件上的Visibility要么一个Visibility或贵ViewModel一个bool属性。确保ViewModel执行INotifyPropertyChanged

当您要更改要折叠的ViewModel中的属性(或false,如果您选择通过转换器使用bool),绑定到它的控件也会更新。

+0

我会尽力谢谢你 – hamza437 2013-03-18 11:02:00

0

假设panorama类,你指的是视图(页)你有几个选择:

  1. 属性添加到指示进度是否应显示一个不确定的状态,然后绑定视图模型对此。 (这是在WP应用程序中采用的最常见的方法。)

  2. 让视图模型发送消息,指示视图正在侦听并响应相应的状态。

  3. 将事件添加到视图模型中,当应该更改加载指示符并让页面订阅它并更新指示符时触发该事件。

  4. 将对进度条的引用传递给viewmodel,并在适当的时候直接更新进度条。 (我只是包括本完成,这是最后的名单是有原因的。这打破了是目的之一MVVM /福利的分离)

随着ProgressBar占用空间的页面我也建议不要改变可见性以及更改IsIndeterminite属性。通过始终使其可见(但改变IsIndeterminite状态),您将避免对可视化树进行不必要的更改(以及涉及的重新计算),并可能避免页面上的其他元素因折叠ProgressBar而移动。