Tôi muốn hiển thị danh sách những người trong số DataGridView
trong ứng dụng Windows Forms. Tôi muốn lớp dịch vụ của mình trả về danh sách các đối tượng Person (ví dụ: IList<Person>
). Tôi muốn thay đổi trong danh sách được phản ánh trong DataGridView
và ngược lại. Sự hiểu biết của tôi là sử dụng BindingSource
tạo điều kiện làm việc với DataGridView
. Câu hỏi của tôi là dành cho hai chiều databinding để làm việc, tôi cần:Tôi có cần BindingSource và BindingList cho WinForms DataBinding không?
//pseudo code
BindingSource.DataSource = IBindingList<Person>
hoặc tôi có thể làm:
BindingSource.DataSource = IList<Person>
sự khác biệt là gì? Nếu tôi thực hiện thay đổi cho danh sách sẽ DataGridView
được cập nhật theo cách nào? Và nếu tôi phải sử dụng các BindingList
, có vẻ như một chút hào nhoáng (vì tạo ra một sự phụ thuộc) để trả lại một BindingList
từ lớp dịch vụ của tôi, là có một cách xung quanh đó?
Microsoft nói về BindingList
(trong phần chú thích) http://msdn.microsoft.com/en-us/library/ms132679.aspx:
"Tuy nhiên, các giải pháp điển hình lập trình viên sẽ sử dụng một lớp cung cấp chức năng liên kết dữ liệu, như
BindingSource
, thay vì trực tiếp sử dụngBindingList<T>
. "
Một phần của sự nhầm lẫn của tôi là một số người dường như đề nghị bạn không cần phải sử dụng một BindingList để có được dữ liệu hai chiều miễn là bạn đang sử dụng một BindingSource. Nhưng tôi đoán những gì bạn đang nói là điều đó chỉ đúng nếu bạn chỉ sửa đổi danh sách thông qua BindingSource. – User