2014-11-06 49 views
0

最初RadBusyIndi​​catior正在运行,但是当DoRefresh()调用并且Data已经更新时,RadBusyIndi​​catior仍在运行,我试过两种绑定方式,但是没有运气。Telerik RadBusyIndi​​cator没有从MVVM更新ViewModel

请让我知道我做错了什么。一旦数据被加载,我只想禁用RadBusyIndi​​cator。

的XAML:

<telerikPrimitives:RadBusyIndicator Name="loading" IsRunning="{Binding ShowLoading}" Visibility="Visible" /> 

视图模型代码:

public class NewReleaseViewModel : ViewModelBase 
{ 
    public ObservableCollection<NewRelease> NewReleases { get; set; } 
    public NewReleaseViewModel() 
    { 
     NewReleases = new ObservableCollection<NewRelease>(); 
     showLoading = true; 
    } 

    private bool showLoading; 

    public bool ShowLoading 
    { 
     get { return showLoading; } 
     set { showLoading = value; 

      Set<bool>(ref showLoading, value); } 
    } 


    private RelayCommand _refresh; 

    public RelayCommand Refresh 
    { 
     get 
     { 
      return _refresh ?? (_refresh = new RelayCommand(async() => 
      { 
       try 
       { 
        await DoRefresh(); 

        ShowLoading = false; 
       } 
       finally 
       { 
        ShowLoading = false; 
       } 
      })); 
     } 

    } 

回答

0

您需要使用Set方法的正确超负荷所以PropertyChanged事件被提出:

public bool ShowLoading 
{ 
    get { return showLoading; } 
    set 
    { 
     showLoading = value; 

     Set<bool>(() => ShowLoading, ref showLoading, value); 
    } 
}