Элементы управления Windows формы могут быть подключены напрямую к источникам данных, но предназначены для использования с BindingSource .Это используется для маршалинга ввода из элементов управления формы в источник данных и из него.
Это компонент, который вы можете перетащить на форму в конструкторе, а затем установить его в качестве источника данных для элемента управления datagridview.
Как только он появится в форме, выМожно использовать конструктор, чтобы установить его в качестве источника данных для вашей таблицы данных.Затем вы можете использовать обработчик событий, например, обработчик события загрузки формы, чтобы предоставить данные в качестве источника данных для источника привязки.
Источник привязки предоставляет вам более точный контроль над тем, как и когда данныепереносится из элементов управления формы в базовые источники данных.Простое использование Binding Source может решить вашу проблему.Если нет, то вызов метода EndEdit для источника привязки перед попыткой сохранить данные должен привести к тому, что все ожидающие изменения будут записаны в таблицу данных.
В качестве простого примера создайте новый проект форм Windows.К форме добавьте сетевое представление данных с именем «datagridview1», источник BindingSource с именем peopleBinding source и командную кнопку saveButton.Установите источник данных для gridview1 как peopleBindingSource.
Добавьте обработчики событий для form.Load и saveButton.Click следующим образом:
public DataTable GetData()
{
DataTable t = new DataTable();
t.Columns.Add("FirstName", typeof(string));
t.Columns.Add("LastName", typeof(string));
t.Rows.Add("Joe","Bloggs");
t.Rows.Add("Fred","Bloggs");
return t;
}
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.AutoGenerateColumns = true;
DataTable people = GetData();
peopleBindingSource.DataSource = people;
}
private void SaveButton_Click(object sender, EventArgs e)
{
DataTable t = peopleBindingSource.DataSource as DataTable;
}
Запустите приложение, и вы должны найти его, если вы проверяететаблица данных в SaveButton_Click, что любые изменения, которые вы внесли в данные, сохраняются.
Если вы предпочитаете, чтобы Visual Studio написал весь код для вас:
- Добавьте новый источник данныхс помощью мастера «Добавить источник данных ...».
- Из окна «Источники данных» перетащите таблицу на форму.
Visual Studio добавит необходимые DataGridView, BindingSource и т. Д. И свяжет их все для вас.Затем вы можете проверить код, чтобы увидеть, как все это сочетается.