私はよりロードする際にユーザーがスクロール最後に私が達成したいあなたは、基本的にはそうここ
見ることができ、私のリストは非常に大きく、私はパフォーマンスを最大限にしたいからです。
私は次のように、メインコレクションをデータで分割して、ユーザーが最後に到達したときにItemSourceを新しく設定できるようにしようとしています。私の実装に問題が一覧が実際に長い重複によるオリジナルのリストのカウントよりもあるということです何アイブこれまでに実装さ
public class ViewModel : BaseViewModel {
public ViewModel() {
Initialize();
}
public List<List<Usermodel>> SplitedUserLists { get; set; }
//Main List that im Binding to
public List<Usermodel> ItemSourceCollection { get; set; }
public int ChunkSize { get; set; }
#endregion
private async void Initialize() {
ItemSourceCollection = await LoadList();
// Splites the list (in this case the chunk Size is 5)
SplitedScoreLists = ItemSourceCollection.Split(GetChunkSize()));
ItemSourceCollection = SplitedScoreLists[0];
}
//Gets called from CodeBehind
public void ListViewItemAppearing(ItemVisibilityEventArgs e) {
//Bottom Hit!
if (e.Item == ItemSourceCollection[ItemSourceCollection.Count - 1]) {
if (ChunkSize >= SplitedScoreLists.Count) {
return;
}
foreach (var usermodel in SplitedScoreLists[ChunkSize].ToList()) {
ItemSourceCollection.Add(usermodel);
}
if (ChunkSize < SplitedScoreLists.Count) {
ChunkSize++;
}
}
}
}
質問
-
。
これはこのようなものですか?
これで実際にパフォーマンスが向上しますか?私はリストが1000以上のエントリを引き起こす必要があります。
データの各チャンクを読み込むのがかなり高額でない限り、パフォーマンスが向上するかどうかは疑問です。代わりに、一度にすべてを読み込み、検索ボックスとジャンプリストを使用して、ユーザーがリストをナビゲートできるようにします。 – Jason
私はそれらをすべて一度だけロードしています。一度にすべてを表示しないようにしています。多分、ユーザーはそれらをすべて必要としないかもしれません。 –
ユーザーとして、私は本当に迷惑を感じるでしょう – Jason