0
ListViewのRefreshCommandにブレークポイントを設定すると、コンストラクタの最初の行の直後に呼び出されます。私は自分でそれを求めていません。 ListViewは目的に応じてこれを行いますか?作成時にListViewのRefreshCommandが呼び出されていますか?
RefreshCommandが呼び出された後、リフレッシュ関数が呼び出され、成功/失敗したデリゲートが呼び出されます。 succesデリゲートは右後で呼び出され、ListViewのIsRefreshingプロパティを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;
}
オープンソースなので、[自分で確認する](https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Core/ListView.cs)はなぜですか?それはそれのようには見えません。ブレークポイントはどこに置いていますか?あなたが 'await Task.Run(()=> refreshThread());を実行すると、' list.RefreshCommand = new Command(async()=> ') –
@Geralt Versluis私のブレークポイントは、refesh関数自体とonSucces onFailedメソッドにあります。ListView isRefreshingプロパティはfalseに設定され、それらのブレークポイントも設定されますが、リストビューはリフレッシュしません。それをリフレッシュしようとしました。 – wasted