C# 中 datagridview 绑定BindingList类型和更新
时间: 2024-03-25 13:40:25 浏览: 42
对于C#中的DataGridView控件,我们可以使用BindingList类型来进行数据绑定。BindingList是一个可自动更新的集合类,可以实现数据的实时更新和显示。下面是绑定BindingList类型数据到DataGridView的步骤:
1. 创建BindingList对象
在代码中创建一个BindingList对象,将数据添加到BindingList中。
```
BindingList<MyData> dataList = new BindingList<MyData>();
dataList.Add(new MyData("Name1", "Value1"));
dataList.Add(new MyData("Name2", "Value2"));
```
2. 绑定数据源
将BindingList对象作为数据源绑定到DataGridView中。
```
dataGridView1.DataSource = dataList;
```
3. 刷新数据
如果需要实时更新数据,可以调用BindingList的ResetBindings方法来刷新数据。
```
dataList.ResetBindings();
```
至于更新DataGridView中的数据,可以直接修改BindingList中的数据,然后调用ResetBindings方法进行刷新。
```
dataList[0].Value = "New Value";
dataList.ResetBindings();
```
相关问题
winform中datagridview和bindinglist数据绑定
在 WinForm 中,可以通过 BindingList<T> 类来绑定 DataGridView 控件。BindingList<T> 是一个实现了 IBindingList 接口的泛型集合类,它提供了对列表的数据绑定支持。
以下是实现数据绑定的步骤:
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 属性为 BindingList<T> 的实例。
```C#
BindingList<Person> personList = new BindingList<Person>();
dataGridView1.DataSource = personList;
```
3. 在需要添加数据的时候,可以直接向 BindingList<T> 中添加数据对象,DataGridView 控件会自动更新显示。
```C#
Person person = new Person() { Name = "Tom", Age = 20, Gender = "Male" };
personList.Add(person);
```
4. 如果需要删除数据,可以调用 BindingList<T> 中的 Remove 或 RemoveAt 方法。
```C#
personList.RemoveAt(0);
```
以上就是在 WinForm 中使用 BindingList<T> 和 DataGridView 控件进行数据绑定的基本步骤。
C# DataGridView绑定List对象时,利用BindingList来实现增删查改
要利用BindingList来实现DataGridView绑定List对象的增删查改,你需要按照以下步骤进行操作:
1. 创建一个继承自BindingList的类,该类代表了你要绑定的List对象。
2. 在DataGridView的DataBindingComplete事件中,设置DataGridView的DataSource属性为你创建的BindingList对象。
3. 在用户需要增加数据的时候,直接在BindingList对象中添加新的数据即可。
4. 在用户需要删除数据的时候,直接从BindingList对象中移除需要删除的数据即可。
5. 在用户需要修改数据的时候,直接修改BindingList对象中对应的数据即可。
6. 如果需要查找数据,可以直接遍历BindingList对象来查找对应的数据。
示例代码如下:
```C#
public class MyDataList : BindingList<MyData>
{
// 自定义绑定列表类,继承自BindingList<MyData>
}
public class MyData
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
// 在Form的Load事件中进行DataGridView的绑定
private void Form_Load(object sender, EventArgs e)
{
MyDataList dataList = new MyDataList();
dataList.Add(new MyData { Id = 1, Name = "Tom", Age = 20 });
dataList.Add(new MyData { Id = 2, Name = "Jerry", Age = 21 });
dataGridView.DataSource = dataList;
}
// 在DataGridView的DataBindingComplete事件中进行数据绑定
private void dataGridView_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
dataGridView.Columns["Id"].Visible = false; // 隐藏Id列
dataGridView.Columns["Name"].HeaderText = "姓名"; // 修改Name列的HeaderText
dataGridView.Columns["Age"].HeaderText = "年龄"; // 修改Age列的HeaderText
}
// 在添加数据的按钮点击事件中进行数据添加
private void addButton_Click(object sender, EventArgs e)
{
MyDataList dataList = dataGridView.DataSource as MyDataList;
dataList.Add(new MyData { Id = 3, Name = "Lucy", Age = 19 });
}
// 在删除数据的按钮点击事件中进行数据删除
private void deleteButton_Click(object sender, EventArgs e)
{
MyDataList dataList = dataGridView.DataSource as MyDataList;
foreach (DataGridViewRow row in dataGridView.SelectedRows)
{
dataList.RemoveAt(row.Index);
}
}
// 在修改数据的按钮点击事件中进行数据修改
private void modifyButton_Click(object sender, EventArgs e)
{
MyDataList dataList = dataGridView.DataSource as MyDataList;
foreach (DataGridViewRow row in dataGridView.SelectedRows)
{
MyData data = row.DataBoundItem as MyData;
data.Age += 1; // 将选中的数据的Age属性加1
dataList.ResetItem(row.Index); // 通知DataGridView数据已修改
}
}
// 在查找数据的按钮点击事件中进行数据查找
private void searchButton_Click(object sender, EventArgs e)
{
MyDataList dataList = dataGridView.DataSource as MyDataList;
foreach (MyData data in dataList)
{
if (data.Name == "Tom")
{
dataGridView.Rows[dataList.IndexOf(data)].Selected = true;
break;
}
}
}
```