Я хочу отобразить список людей в DataGridView
в приложении Windows Forms. Я хочу, чтобы мой сервисный слой возвращал список объектов Person (например, IList<Person>
). Я хочу, чтобы изменения в списке отражались в DataGridView
и наоборот. Насколько я понимаю, использование BindingSource
облегчает работу с DataGridView
. Мой вопрос для двусторонней привязки данных для работы, мне нужно:
//pseudo code
BindingSource.DataSource = IBindingList<Person>
или я могу сделать:
BindingSource.DataSource = IList<Person>
Какая разница? Если я внесу изменения в список, будет ли DataGridView
обновляться в любом случае? И если мне придется использовать BindingList
, то будет немного странно (из-за создания зависимости) вернуть BindingList
из моего уровня обслуживания, есть ли способ обойти это?
Microsoft говорит о BindingList
(в разделе «Замечания»)
http://msdn.microsoft.com/en-us/library/ms132679.aspx:
"Однако типичные решения
программист будет использовать класс, который
обеспечивает функциональность привязки данных,
например BindingSource
вместо
напрямую используя BindingList<T>
. "