C#如何将datagridview的列和实体对象的属性绑定
时间: 2023-09-22 20:05:42 浏览: 161
在C#中,可以通过`DataGridView`控件的自动绑定机制,将其列和实体对象的属性进行绑定。只需要将实体对象的集合作为`DataGridView`控件的`DataSource`,并设置`AutoGenerateColumns`属性为`true`,`DataGridView`控件就会自动创建列并绑定实体对象的属性。
以下是示例代码:
```csharp
// 假设已经创建了DataGridView控件实例 dgv,并有一个名为 Person 的实体类
// 创建实体对象的集合
List<Person> persons = new List<Person>();
persons.Add(new Person() { Name = "Tom", Age = 20 });
persons.Add(new Person() { Name = "Jerry", Age = 18 });
persons.Add(new Person() { Name = "Alice", Age = 22 });
// 将实体对象的集合作为DataGridView控件的DataSource,并设置AutoGenerateColumns属性为true
dgv.DataSource = persons;
dgv.AutoGenerateColumns = true;
```
在上述代码中,首先创建了一个名为`Person`的实体类,包含了`Name`和`Age`两个属性。然后,创建了一个实体对象的集合`persons`,并将其作为`DataGridView`控件的`DataSource`,并设置`AutoGenerateColumns`属性为`true`,这样`DataGridView`控件就会自动创建列并绑定实体对象的属性。
需要注意的是,在使用自动绑定机制时,需要确保实体对象的属性名和`DataGridView`控件中列的名称一致,否则无法正确地绑定数据。如果需要自定义列的显示名称,可以使用`DisplayName`特性来设置。
示例代码如下:
```csharp
public class Person
{
[DisplayName("姓名")]
public string Name { get; set; }
[DisplayName("年龄")]
public int Age { get; set; }
}
```
在上述代码中,使用`DisplayName`特性为`Name`和`Age`属性设置了自定义的显示名称。在`DataGridView`控件中,会将实体对象的属性名替换为`DisplayName`特性中的值,作为列的显示名称。
阅读全文