C# 加载数据时显示进度条

C# 加载数据时显示进度条,c#,android,xamarin,xamarin.android,mvvmcross,C#,Android,Xamarin,Xamarin.android,Mvvmcross,我试图在加载数据时显示进度条,一旦加载数据,我想隐藏进度条 出于测试的目的,我刚刚添加了10秒,效果良好 private async Task ProgressBarAsync() { _isProgressVisible = true; RaisePropertyChanged(() => IsProgressVisible); await Task.Delay(TimeSpan.FromSeconds(10)).ConfigureAwait(false);

我试图在加载数据时显示进度条,一旦加载数据,我想隐藏进度条

出于测试的目的,我刚刚添加了10秒,效果良好

private async Task ProgressBarAsync()
{
    _isProgressVisible = true;
   RaisePropertyChanged(() => IsProgressVisible);

   await Task.Delay(TimeSpan.FromSeconds(10)).ConfigureAwait(false);

    isProgressVisible = false;
    RaisePropertyChanged(() => IsProgressVisible);
}
但是,在以下实际代码中,不显示进度条

private async Task RefreshStudentList()
{
   //display progressbar
   _isProgressVisible = true;
   RaisePropertyChanged(() => IsProgressVisible);

   // load data
   var task =  _studentService.GetStudentAsync();
   await task;
   Students = new ObservableCollection<StudentViewModel>(task.Result.ConvertAll(x => new ClassViewModel(x)));

   //hide progressbar
   _isProgressVisible = false;
    RaisePropertyChanged(() => IsProgressVisible);
}
private异步任务RefreshStudentList()
{
//显示进度条
_isProgressVisible=true;
RaisePropertyChanged(()=>IsProgressVisible);
//加载数据
var task=_studentService.GetStudentAsync();
等待任务;
学生=新的可观察集合(task.Result.ConvertAll(x=>newclassviewmodel(x));
//隐藏进度条
_isProgressVisible=false;
RaisePropertyChanged(()=>IsProgressVisible);
}

使用InvokeOnMainThread尝试以下操作:

private async Task RefreshStudentList()
{
   //display progressbar
   _isProgressVisible = true;
   InvokeOnMainThread(() => RaisePropertyChanged(() => IsProgressVisible));

   // load data
   var data =  await _studentService.GetStudentAsync();
   Students = new ObservableCollection<StudentViewModel>
       (data.ConvertAll(x => new ClassViewModel(x)));

   //hide progressbar
   _isProgressVisible = false;
   InvokeOnMainThread(() => RaisePropertyChanged(() => IsProgressVisible));
}
private异步任务RefreshStudentList()
{
//显示进度条
_isProgressVisible=true;
InvokeOnMainThread(()=>RaisePropertyChanged(()=>IsProgressVisible));
//加载数据
var data=await_studentService.getstudentsync();
学生=新观察到的集合
(data.ConvertAll(x=>newclassviewmodel(x));
//隐藏进度条
_isProgressVisible=false;
InvokeOnMainThread(()=>RaisePropertyChanged(()=>IsProgressVisible));
}

您确定已正确绑定IsProgressVisible吗?请参阅我的更新问题您确定从UI线程调用RefreshStudentList方法吗?您应该尝试用InvokeOnMain线程(()=>…)封装您的“RaisePropertyChanged(()=>IsProgressVisible);”调用;你能在代码中说明你的想法吗?不幸的是,我刚刚尝试过,但没有成功。有可能用你的代码创建一个github示例项目吗?