Я хочу отобразить список людей в 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>
."