【发布时间】:2017-06-19 19:15:05
【问题描述】:
我试图在加载数据时显示进度条,一旦加载数据,我想隐藏进度条。
出于测试目的,我刚刚添加了 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);
}
【问题讨论】:
-
您确定已正确绑定 IsProgressVisible 吗?
-
查看我更新的问题
-
您确定从 UI 线程调用 RefreshStudentList 方法吗?您应该尝试封装您的“RaisePropertyChanged(() => IsProgressVisible);”调用 InvokeOnMainThread(() => ...);
-
你能在代码中说明你的想法吗?
标签: c# android xamarin xamarin.android mvvmcross