Làm cách nào để liên kết hai danh sách với nhau bằng bộ sưu tập có thể quan sát được trong VB.NET?

lập trình


chào các cậu

Ở đây chúng ta có listORG với 3 trường:

Idx, Etude, Tên
———————————-
1 Etude1 John
2 Etude2 John
3 Etude3 John
4 Nghiên cứu 4 John
5 Etude5 Vui vẻ
6 Etude6 Vui vẻ
7 Etude7 John
8 Etude8 John
9 Etude9 Vui vẻ

Ở đây chúng tôi có listHowMany :

Idx , Tên , HowManyEtudes
———————————————-
1 Giăng 6
2 vui vẻ 2

Vì vậy, nếu bạn thấy, danh sách thứ hai sẽ hiển thị có bao nhiêu bản etude dành cho hai người John và Merry.

Vì vậy, tôi muốn lập trình điều này bằng Bộ sưu tập có thể quan sát được. Bởi vì tôi muốn bất kỳ cập nhật nào về bất kỳ danh sách nào trong danh sách này, hãy cập nhật danh sách khác. Giống như thêm mới, xóa hoặc chỉnh sửa.

Bạn vui lòng giúp tôi về điều này?

Những gì tôi đã thử:

Thực ra tôi đã thử một số mã từ internet nhưng không gặp may.

Giải pháp 1

Ở đây có vấn đề với những gì bạn muốn làm: bạn không thể sử dụng một ObservableCollection duy nhất cho hai danh sách khác nhau và mặc dù bạn có thể đặt tất cả các mục từ cả hai vào một ObservableCollection được gõ yếu và truyền chúng một cách thích hợp khi bạn truy cập vào nó, nhưng không phải vậy giống như việc có các bộ sưu tập riêng biệt và sẽ làm cho mã của bạn phức tạp hơn và khó đọc/bảo trì hơn nhiều.

Bạn có thể sử dụng hai ObservableCollections và điều đó sẽ hoạt động khá tốt – nhưng ngay cả khi đó, điều đó chỉ phát sinh sự kiện khi bộ sưu tập được thay đổi bởi thao tác Thêm, Xóa hoặc sắp xếp lại. Bạn sẽ không nhận được sự kiện khi một mục trong bộ sưu tập có thành viên thay đổi: myObservableCollection(0).Name = "New name" sẽ không tạo ra một sự kiện.

Giải pháp 2

Bạn sẽ sử dụng một CollectionViewSource và sử dụng nhóm. Tôi cho rằng bạn đang sử dụng WPF. Đây là một mẫu: Cách: Sắp xếp và nhóm dữ liệu bằng cách sử dụng Chế độ xem trong XAML – WPF .NET Framework | Microsoft Tìm hiểu[^].

Dưới đây là một số điều khác mà bạn có thể làm với CollectionViewSource: Bộ sưu tậpViewSource | 2.000 điều bạn nên biết về WPF[^]

Đây là một ví dụ chỉ sử dụng mã: Nhóm dựa trên hai hoặc nhiều thuộc tính[^]

コメント

タイトルとURLをコピーしました