2016-07-11 4 views
0

を設定追加:UWPリストビュー大規模データは、私は次のようなリストビューを使用しています

<ListView Margin="10" Name="myListView"> 
<ListView.ItemTemplate> 
     <DataTemplate> 
      <WrapPanel> 
       <TextBlock Text="Name: " /> 
       <TextBlock Text="{Binding Name}" FontWeight="Bold" /> 
       </WrapPanel> 
     </DataTemplate> 
</ListView.ItemTemplate> 

私は、ディレクトリ内のすべてのファイルのリストを作成しています。潜在的に非常に大きな数です。データセットの読み込みはここでは問題になりません。私はデータを前処理しています(ファイルから読み込んで、一時的リストList <>を生成し、並べ替えなど)ので、IOパフォーマンスはここでは問題になりません。私あらかじめ入力リスト<で

>私は、単純なforeachのを行うと、追加対象:

private async Task AddItemsToList() 
{ 
    foreach(MyObject item in List<MyObject>) 
    { 
     myListView.Add(item) 
    } 
} 

上記は、しかし、私のコードが同じである、モックアップです。

このforeachを処理するとき、各項目が追加されるとUIは更新されません。 foreachが完了すると、大きなチャンクとして表示されます。 AddItemsToList()はが待たれていませんです。

私はいくつかの記事(particularly this)を読んでおり、UWPが自動的に段階的にプレースホルダを読み込んで利用するという印象を受けています。

どのような提案も大歓迎です!

アンドリュー、

注:(?>万項目)私はUI仮想化が過剰なデータセットのために理想的である認識していますdescribed hereとして。

+0

おそらく、動作していない部分のサンプルデータを持つサンプルプロジェクトです。大規模なデータセットにはUI仮想化を使用することをお勧めします。 –

答えて

0

MVVMとObservableCollectionを使用しようとしましたか?ファイルから読み込んだ後、ObservablCollectionに直接項目を追加しましたか?また、読み取りと処理が非同期であることを確認してください

+0

アレックスに感謝します。私はListViewの背後にコードを投稿していない申し訳ありません。 "listview.xaml.cs"バッキングはObservableCollectionを実装しています。残念ながら、完全なデータセットの分析を必要とするデータ(集計、並べ替え、タグ付けなど)に「処理」を行うと、直接追加することはできません。 UIを何度も変更しない方が速い/簡単だったと思いました。ファイルIO /処理はすべて非同期です。 – Incipient

+0

モデルのリストにソースを追加し、ユーザービューでModel.Use MVVMから表示し、ユーザービュー番号を追加する必要があります。 – lindexi

関連する問題