I want to display a list of people in a DataGridView
in a Windows Forms app. I want my service layer to return a list of Person objects (e.g., IList<Person>
). I want changes in the list to be reflected in the DataGridView
and vice versa. My understanding is that using the BindingSource
facilitates working with DataGridView
. My question is for the two-way databinding to work, do I need:
//pseudo code
BindingSource.DataSource = IBindingList<Person>
or can I do:
BindingSource.DataSource = IList<Person>
What's the difference? If my make changes to the list will the DataGridView
be updated either way? And if I have to use the BindingList
, it seems a little wonky (because of creating a dependency) to return a BindingList
from my service layer, is there a way around that?
Microsoft says of the BindingList
(in the Remarks section)
http://msdn.microsoft.com/en-us/library/ms132679.aspx:
"However, the typical solutions
programmer will use a class that
provides data binding functionality,
such as BindingSource
, instead of
directly using BindingList<T>
."
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…