Desidero visualizzare un elenco di persone in un DataGridView
in un'app Windows Form. Voglio che il mio livello di servizio restituisca un elenco di oggetti Person (ad es., IList<Person>
). Voglio che le modifiche nell'elenco si riflettano nello DataGridView
e viceversa. La mia comprensione è che l'utilizzo di BindingSource
facilita il lavoro con DataGridView
. La mia domanda è per il doppio senso l'associazione dati per lavorare, ho bisogno:Ho bisogno di BindingSource AND BindingList per DataBinding di WinForms?
//pseudo code
BindingSource.DataSource = IBindingList<Person>
o posso fare:
BindingSource.DataSource = IList<Person>
Qual è la differenza? Se apporti modifiche all'elenco, lo DataGridView
verrà aggiornato in entrambi i casi? E se devo usare lo BindingList
, sembra un po 'traballante (a causa della creazione di una dipendenza) per restituire uno BindingList
dal mio livello di servizio, c'è un modo per aggirare questo?
Microsoft dice del BindingList
(nella sezione Osservazioni) http://msdn.microsoft.com/en-us/library/ms132679.aspx:
"Tuttavia, le soluzioni tipiche programmatore utilizzare una classe che fornisce i dati funzionalità vincolante, quali
BindingSource
, invece di utilizzando direttamenteBindingList<T>
. "
Parte della mia confusione era che alcune persone sembravano suggerire che non era necessario utilizzare un BindingList per ottenere un collegamento bidirezionale finché si utilizzava BindingSource. Ma suppongo che quello che stai dicendo è vero solo se si modifica l'elenco solo tramite BindingSource. – User