Ai-je besoin d'une BindingSource ET d'une BindingList pour WinForms DataBinding?

Je veux afficher une liste de personnes dans un DataGridView dans une application Windows Forms. Je veux que ma couche de service pour retourner une liste d'objets de la Personne (par exemple, IList<Person>). J'ai envie de changements dans la liste pour être reflétée dans le DataGridView et vice versa. Ma compréhension est que l'utilisation de la BindingSource facilite le travail avec DataGridView. Ma question est pour les deux sens de la liaison de données pour le travail, j'ai besoin:

//pseudo code
BindingSource.DataSource = IBindingList<Person>

ou je peux le faire:

BindingSource.DataSource = IList<Person>

Quelle est la différence? Si mes apporter des modifications à la liste de la DataGridView être mis à jour de toute façon? Et si je dois utiliser le BindingListil semble un peu bancale (en raison de la création d'une dépendance) pour retourner un BindingList de ma couche de service, est-il un moyen de contourner cela?

Microsoft dit de la BindingList (dans la section des Remarques)
http://msdn.microsoft.com/en-us/library/ms132679.aspx:

"Toutefois, les solutions typiques
programmeur utilisera une classe qui
fournit la fonctionnalité de liaison de données,
comme BindingSource, au lieu de
directement à l'aide de BindingList<T>."

source d'informationauteur User