winform中datagridview双向数据绑定
时间: 2023-07-30 22:12:48 浏览: 267
datagridview的数据绑定
5星 · 资源好评率100%
在 WinForm 中,可以通过双向数据绑定来实现 DataGridView 控件与数据源之间的数据同步。当数据源的值发生改变时,DataGridView 控件会自动刷新显示;当用户在 DataGridView 中修改了数据时,数据源的值也会自动更新。
以下是实现双向数据绑定的步骤:
1. 定义一个实体类,来表示要绑定的数据对象,该实体类的属性应该和 DataGridView 中的列一一对应。
```C#
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
}
```
2. 在 Form 中创建 DataGridView 控件,并设置其 DataSource 属性为 BindingSource 的实例。
```C#
BindingSource personSource = new BindingSource();
personSource.DataSource = typeof(Person);
dataGridView1.DataSource = personSource;
```
3. 创建一个 Person 对象的实例,并将其绑定到 BindingSource 中。
```C#
Person person = new Person() { Name = "Tom", Age = 20, Gender = "Male" };
personSource.Add(person);
```
4. 在需要进行双向数据绑定的 DataGridView 列上,设置其 DataPropertyName 属性为 Person 对象的属性名。
```C#
dataGridView1.Columns["Name"].DataPropertyName = "Name";
dataGridView1.Columns["Age"].DataPropertyName = "Age";
dataGridView1.Columns["Gender"].DataPropertyName = "Gender";
```
5. 如果需要在 DataGridView 中修改数据,可以通过 DataGridView 中的 CurrentCellDirtyStateChanged 事件和 CellValueChanged 事件来实现数据源的更新。
```C#
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dataGridView1.IsCurrentCellDirty)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
{
Person person = personSource.Current as Person;
personSource.EndEdit();
}
}
```
以上就是在 WinForm 中实现双向数据绑定的基本步骤。
阅读全文