Одним из преимуществ является то, что если вы манипулировать значениями в DataGridView вручную, то изменения будут отражены в базовых данных. (EDIT: по-видимому, это также работает с обязательным нормальным DataSource.)
другое преимущество заключается в том, что вы получите возможность добавить запись исходных данных (по крайней мере, если это List
), нажав на дополнительное пустое поле и отредактируйте значения. Это добавит новый элемент без дополнительного кода для записи.
Это Detailed Data Binding Tutorial может помочь пролить свет на возможности связывания данных в целом
EDIT:
Еще одно отличие заключается в том, что манипуляция основных данных, таких как добавление элемент в список не будет отображаться в DataGridView
, даже если снова назначить свойство DataSource
, которое будет работать, например, в ComboBox
. Но переназначение нового экземпляра BindingSource
сделает трюк.
Так что если у вас есть список лиц:
List<pers> list = new List<pers>();
BindingSource bs = new BindingSource();
bs.DataSource = perlist;
dataGridView1.DataSource = bs;
и позже хотите добавить новый элемент в список в коде, просто создать новый экземпляр BindingSource
, переназначить его на DataGridView.DataSource
list.Add(new pers());
bs = new BindingSource();
bs.DataSource = perlist;
dataGridView1.DataSource = bs;
и новый элемент будет отображаться
я нашел еще одно существенное различие. Вы можете проверить мое редактирование. Также вы можете принять один из ответов, которые были вам полезны. –