DataGridView 用BindingList<>修改数据
时间: 2024-02-28 08:54:55 浏览: 176
要在 DataGridView 中使用 BindingList<> 修改数据,可以按照以下步骤操作:
1. 创建一个 BindingList<> 对象,并将其设置为 DataGridView 的数据源。
```
BindingList<MyData> dataList = new BindingList<MyData>();
dataGridView.DataSource = dataList;
```
2. 在 BindingList<> 中添加数据。
```
dataList.Add(new MyData { Name = "John", Age = 25 });
dataList.Add(new MyData { Name = "Jane", Age = 30 });
```
3. 在 DataGridView 中编辑数据。
当用户双击单元格时,DataGridView 进入编辑模式。用户可以在编辑模式下修改单元格的值。如果你需要在用户完成编辑后更新 BindingList<> 中的数据,可以处理 DataGridView 的 `CellEndEdit` 事件,将修改后的值保存回 BindingList<>。
```
private void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
MyData data = dataList[e.RowIndex];
DataGridViewCell cell = dataGridView[e.ColumnIndex, e.RowIndex];
string propertyName = dataGridView.Columns[e.ColumnIndex].DataPropertyName;
object value = cell.Value;
PropertyInfo property = typeof(MyData).GetProperty(propertyName);
property.SetValue(data, Convert.ChangeType(value, property.PropertyType));
}
```
这段代码会获取修改后的单元格值,并将其设置回 BindingList<> 中的对应对象。
4. 在 DataGridView 中删除数据。
用户可以通过选中一行并按下 Delete 键来删除行。如果你需要在用户删除行后更新 BindingList<> 中的数据,可以处理 DataGridView 的 `UserDeletingRow` 事件,将要删除的数据从 BindingList<> 中删除。
```
private void dataGridView_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
{
MyData data = (MyData)e.Row.DataBoundItem;
dataList.Remove(data);
}
```
这段代码会获取要删除的对象,并将其从 BindingList<> 中删除。
这样,你就可以使用 BindingList<> 在 DataGridView 中修改数据了。
阅读全文