4

Windows 8 スタイル アプリで検索ページを作成しました。ISupportIncrementalLoading を実装しました。ユーザーがスクロールすると、ページングがうまく機能します。

私が抱えている問題は、ユーザーが 2 回目の検索を行うときです。どうやら LoadMoreItemsAsync を再び起動させる方法がわかりません。私は次のことを試しました:

1) Observable であり、ISupportIncrementalLoading をサポートする基になるコレクションをクリアします。これにより、画面からすべてのアイテムがクリアされるため、適切にバインドされていることがわかります。

2) ISupportIncrementalLoading を実装する基になるコレクション インスタンスを完全に置き換え、INotifyPropertyChanged を発生させて、ビューがプロパティが変更されたことを認識するようにします。これにより、画面からすべてのアイテムがクリアされます。

ただし、LoadMoreItemsAsync は、基になるコレクション インスタンスをクリアまたは置換した後に起動する必要はありません。私の推測では、UI はこれ以上ロードする必要はないと考えていますが、すべての項目をクリアしたので、さらにロードする必要があるはずです。

HasMoreItems プロパティが true に設定されていることを確認しました。

残念ながら、FlixPicks を Windows 8 ストアからダウンロードすると、本番環境でエラーが表示されます。再現する手順は次のとおりです。

  1. Windows 検索契約を使用して検索する
  2. ページング機能の通知 検索ページから
  3. もう一度検索。
  4. すべての項目がクリアされていることに注意してください。(この時点では、LoadMoreItemsAsync は起動していません)

あなたが提供できるアドバイスをありがとう!

4

3 に答える 3

1

これは間違いなくバグのようです。これを解決するには、コレクションをリセットした後に次の行を追加します (いずれの場合も)。

gv.LoadMoreItemsAsync();

おそらく、コントロールから継承して、これを自動的に行ういくつかのオーバーライドを作成できます。

于 2012-10-16T13:31:12.357 に答える