2017-08-10 1 views
-1

ViewModelでObservableCollectionオブジェクト(Categorysという名前)をバインドするListViewがありますが、今度はCategroysをクリアしてから再度結果を入力する必要がありますソケット。この進捗は10秒かかるかもしれません、私はListViewがこの10秒でまだデータを表示したいと思います。どのようにできるのか?カテゴリのコピーを作成しますか?ListViewバインディングObservableCollection <T>、ListViewをリフレッシュする必要がありますが、時間がかかります

答えて

0

コレクション全体を置き換える場合は、サービスがソケットからデータを取得して、バックグラウンドスレッドで新しいObservableCollectionを作成し、それが完了したら、ViewModel.Categorys = newCollectionを設定してください。

+0

newCollection.Clear()を使用すると、ListViewは何も表示しません。;) –

+0

なぜ新しいコレクションをクリアしていますか?何をどのように達成しようとしているのかを理解するのに役立つように、元の質問にいくつかのコードを投稿しておけば助けになります。 –

+0

ありがとう、私は方法を見つけた。この行だけが時間を費やします。 var result = Communication.SocketAPI.Instance.ListFile(string.Empty、FolderType.None、generateCommandID());この後、私はカテゴリーをクリアします。 –

関連する問題