アプリケーションでインクリメンタルロードを実装しました。hasMoreItems
がfalseに設定されている場合、コンストラクタでtrueに設定されたisLoading
ブール変数を持ち、falseに設定されています。進捗リングでインクリメンタルロード
private void List_LayoutUpdated(object sender, object e)
{
if (list.Items.Count == 0 && list.ItemsSource == null)
CenterProgressRing.IsActive = true;
else if (list.Items.Count == 0 && list.ItemsSource != null)
{
if (!((IncrementalSource)this.list.ItemsSource).isLoading)
CenterProgressRing.IsActive = false;
else CenterProgressRing.IsActive = true;
}
else CenterProgressRing.IsActive = false;
}
最初のページがロードされ、受信する項目がある場合、それは、非常に良い働きながらだから、ProgressRing
を示している:そして、私はこのように動作しますProgressRing
を持っています。しかし、何もロードされない状況になると、ProgressRing
は永遠に活動し続けます。なぜ私は理解できません。
最後のアイテムがダウンロードされた後に、あなたは 'List_LayoutUpdated'が呼び出されていないことが正しいと思います。 'isLoading'を観測可能にすることは役に立たなかった。しかし、[この投稿](http://stackoverflow.com/questions/27870079/isupportincrementalloading-collection-notify-ui-when-loadingmoreitems-is-in-pr)で提案されているようにアクション/イベントを追加することで作業が完了しました。とにかく、あなたの貢献に感謝し、私はあなたの答えを受け入れられた答えとしてマークします。 – dace