kể từ hai ngày tôi đang cố gắng giải quyết vấn đề sau: Tôi có một điều khiển WPF nơi WrapPanel được ràng buộc với một ObservableCollection. Một hành động thay đổi nội dung của ObservableCollection. Nội dung được tải trong một BackgroundWorker. Ngay sau khi hành động gây ra thay đổi nội dung, nội dung mới là cần thiết trong vòng lặp foreach. Vấn đề là tải nội dung chậm, vì vậy nó cần một chút để sẵn sàng.Làm thế nào để cập nhật ObservableCollection từ bên trong một BackgroundWorker bằng cách sử dụng MVVM?
Nỗ lực đầu tiên của tôi là đợi nhân viên nền cho đến khi thuộc tính IsBusy được đặt thành false. Nhưng tài sản IsBusy không bao giờ thay đổi trong khi chờ đợi! Nỗ lực thứ hai là cố gắng thao tác ObservableCollection trực tiếp từ BackgroundWorker. Tất nhiên không thành công vì ObservableCollection nằm trong một luồng khác với BackgroundWorker.
Tôi đã đọc rất nhiều về cách thao tác nội dung trong toàn chuỗi. Nhưng không ai trong số họ làm việc. Đã thử các giải pháp với Người điều phối, "ThreadSafeObservableCollection", .....
Có ai cho tôi biết cách tôi có thể giải quyết vấn đề đó không? Có cách nào đơn giản để chỉnh sửa nội dung của chuỗi giao diện người dùng trong chuỗi khác không? Hoặc làm cách nào để tôi đợi chính xác cho BackgroundWorker hoàn tất?
EDIT: Nhưng làm cách nào tôi có thể đợi BackgroundWorker hoàn thành ???
này không giúp tiết kiệm thời gian, nó chạy nhưng trên cùng một sợi! –