Tôi có một sự kiện CollectionChanged
được liên kết với một số ObservableCollection
. Sự kiện CollectionChanged
này sau đó gọi một chức năng khác nhằm cập nhật một bộ sưu tập khác (cùng loại) với một mục từ bộ sưu tập gốc. Tôi đã đọc các bài viết khác trên "Không thể thay đổi ObservableCollection trong một sự kiện CollectionChanged" và tôi hiểu hoàn toàn lý do tại sao nó bị cau mày khi sửa đổi bộ sưu tập bên trong sự kiện CollectionChanged
và lý do tại sao điều này có thể dẫn đến tham chiếu vòng tròn ... trường hợp cụ thể này tôi không sửa đổi bộ sưu tập gốc, tôi chỉ thêm một mục từ bộ sưu tập đó vào bộ sưu tập không liên quan.Không thể thay đổi ObservableCollection trong sự kiện CollectionChanged
Vì vậy, đối với câu hỏi của tôi .. có điều gì sai trái với những gì tôi đang làm không? Tôi không thấy cách thêm một mục từ bộ sưu tập với sự kiện gắn với nó vào một bộ sưu tập khác sẽ kích hoạt sự kiện lần nữa và tạo tham chiếu vòng tròn (mặc dù hãy cho tôi biết nếu tôi sai về điều này).
Ngoài ra ... có cách nào xung quanh nó không? Tôi đọc một số bài viết tư vấn để chạy này trên một thread riêng biệt nhưng khi tôi cố gắng mà tôi nhận được lỗi sau để thay thế.
This type of CollectionView does not support changes to its SourceCollection
from a thread different from the Dispatcher thread.
Tôi thực sự chỉ sau khi hiểu rõ hơn về những gì đang xảy ra ở đây. Bât cư lơi khuyên nao cung se được đanh gia cao.
Sửa
ví dụ đơn giản như yêu cầu
void originalCollection_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
update(originalCollection);
}
private void update(object parameter)
{
foreach (var originalCollectionItem in parameter)
newCollection.Add(originalCollectionItem);
}
Bạn gặp phải lỗi gì? – SLaks
Tiêu đề của bài đăng là thông báo lỗi .. Không thể thay đổi ObservableCollection trong sự kiện CollectionChanged – aw04
Bạn có thể đăng mã thực tế không? –