Telerik RadBusyIndicator未从MVVM ViewModel更新

本文关键字:ViewModel 更新 MVVM 未从 RadBusyIndicator Telerik | 更新日期: 2023-09-27 18:29:27

最初RadBusyIndicator正在运行,但当调用DoRefresh()并更新数据时,RadBusyindicator仍在运行,我也尝试了双向绑定,但没有成功。

请告诉我我做错了什么。我只想在数据加载后禁用RadBusyIndicator。

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

Telerik RadBusyIndicator未从MVVM ViewModel更新

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

public bool ShowLoading
{
    get { return showLoading; }
    set 
    {
        showLoading = value; 
        Set<bool>(() => ShowLoading, ref showLoading, value);
    }
}