Sửa lỗi ComboBox tự động chọn giá trị khi dùng chung DataSoure với ComboBox khác – Winform

Mình vẫn đang làm BTL môn Lập Trình Trực Quan (sắp xong rồi :D), đang làm thì gặp vấn đề: mình có 2 cái ComboBox dùng chung một DataSoure (DataTable), khi chọn ở ComboBox này thì ComboBox kia cũng thay đổi theo.

Untitled
Hai ComboBox dùng chung 1 DataSoure
2 ComboBox same DataSoure.gif
Khi chọn ở ComboBox này thì ComboBox kia cũng thay đổi theo

Đây là một tính năng khá hữu ích giúp đồng bộ giữa các ComboBox, nhưng trong bài tập của mình thì mình lại không muốn như vậy 😀 Hãy cùng mình sửa nó nhé.
Như hình ở trên, mình có hàm tên SetComboBox, hàm này sẽ gán DataSoure cho ComboBox mình truyền vào. Điều mình cần làm bây giờ là làm cho mỗi lần hàm này được thực thi thì nó sẽ gán DataSoure ở một context (ngữ cảnh) mới, từ đó các ComboBox sẽ không bị tính là dùng chung một DataSoure nữa và sẽ không bị tự động thay đổi.
Để tạo được context mới, ta sẽ dùng thuộc tính BindingContext của ComboBox (kế thừa từ lớp Control). Hàm SetComboBox được thêm một lệnh:

Untitled.png
Tạo mới BindingContext trước khi gán DataSoure

Kết quả là ComboBox không tự động thay đổi giá trị nữa.2 ComboBox same DataSoure-after.gif

Chúc các bạn thành công.