Telerik RadBusyIndi​​cator未从MVVM ViewModel更新

时间:2014-11-06 13:05:20

标签: c# windows-phone-8 mvvm telerik

最初RadBusyIndi​​catior正在运行,但是当DoRefresh()调用并且Data已经更新时,RadBusyIndi​​catior仍然在运行,我也尝试过双向绑定,但没有运气。

请让我知道我做错了什么。我只想在加载数据后禁用RadBusyIndi​​cator。

Xaml:

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

ViewModel代码:

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

    }

1 个答案:

答案 0 :(得分:0)

您需要使用Set方法的正确重载,以便引发PropertyChanged事件:

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

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