대량의 데이터를로드한다고 가정 할 때 데이터를로드하는 동안 UI가 응답해야합니다. 현재 유일한 작업 코드는 다음과 같습니다. 항상은 원하지 않는 UI를 새로 고칩니다. UI가 아닌 스레드에서 데이터를로드하고 최종 업데이트를 얻는 방법은 무엇입니까?EF LoadAsync 후의 화면 새로 고침
private static object sync_lock = new object();
private void Load()
{
MyEntities db = new MyEntities();
TestEntityViewModel testEntityViewModel = (TestEntityViewModel)FindResource("testEntityViewModel");
testEntityViewModel.Source = db.TestEntities.Local; // Source is ObservableCollection<TestEntity>
BindingOperations.EnableCollectionSynchronization(testEntityViewModel.Source, sync_lock);
db.TestEntities.LoadAsync().ContinueWith(new Action<Task>(
(t) =>
{
this.Dispatcher.Invoke(new Action(() =>
{
View.MoveCurrentToFirst();
CommandManager.InvalidateRequerySuggested();
}));
}));
}
참고 : 나는 EnableCollectionSynchronization
에 전화를 제거하면 데이터가로드하지만 ICollectionView
과 SourceCollection
것이다 단 1 항목입니다.