当我在ListView的RefreshCommand上放置断点时,它会在我的构造函数的第一行之后调用。我从不自己要求它。列表视图是故意这样做的吗?
调用刷新命令后,将调用刷新函数,并成功/失败。紧接着调用 succes 委托,这会将 ListView 的 IsRefresh 属性设置为 false。但是,我的列表视图永远不会停止刷新。
代码,全部在同一个页面类中:
public somePage(){
list = new ListView(){
ItemsSource = someSource,
IsPullToRefreshEnabled = true,
}
list.RefreshCommand = new Command(async () =>
{
await Task.Run(() => refreshThread());
});
}
private task refreshThread(){
Succes succesCallBack = new Succes(onSucces);
failedCallBack = new Failure(onFailed);
refresh(succesCallBack, failedCallBack);
}
private void onSucces(dynamic result){
//code to add//remove data from listview
list.IsRefreshing = false;
}
private void onFailed(string message){
DisplayAlert("Alert", message, "ok");
list.IsRefreshing = false;
}
如果有人也在寻找这个答案,我的问题是不正确地使用了async
/await
。