DataGrid 的 DataSource 属性可以连接多种数据源,包括但不限于以下几种:
- DataTable:可以将一个DataTable对象作为DataGrid的数据源。DataTable是一个内存中的表格,可以通过编程方式创建、填充和操作数据。
示例代码:
DataTable dataTable = new DataTable();
// 添加列
dataTable.Columns.Add("ID", typeof(int));
dataTable.Columns.Add("Name", typeof(string));
// 添加行
dataTable.Rows.Add(1, "大毛");
dataTable.Rows.Add(2, "二毛");
dataGrid.DataSource = dataTable;
- DataSet:可以将一个DataSet对象作为DataGrid的数据源。DataSet是一个内存中的数据容器,可以包含多个DataTable。
示例代码:
DataSet dataSet = new DataSet();
//创建DataTable
DataTable dataTable = new DataTable("Students");
dataTable.Columns.Add("ID", typeof(int));
dataTable.Columns.Add("Name", typeof(string));
//添加行
dataTable.Rows.Add(1, "大毛");
dataTable.Rows.Add(2, "二毛");
//将DataTable添加到DataSet中
dataSet.Tables.Add(dataTable);
dataGrid.DataSource = dataSet;
dataGrid.DataMember = "Students";
- BindingList:可以将一个BindingList对象作为DataGrid的数据源。BindingList是一个可绑定的集合,可以实现数据的增删改查操作。
示例代码:
BindingList<Student> students = new BindingList<Student>();
students.Add(new Student { ID = 1, Name = "大毛" });
students.Add(new Student { ID = 2, Name = "二毛" });
dataGrid.DataSource = students;
- IList接口的实现类:可以将实现了IList接口的集合类作为DataGrid的数据源,例如List、ObservableCollection等。
示例代码:
List<Student> students = new List<Student>();
students.Add(new Student { ID = 1, Name = "大毛" });
students.Add(new Student { ID = 2, Name = "二毛" });
dataGrid.DataSource = students;
除了以上几种常见的数据源,还可以通过自定义数据源来连接其他类型的数据,只要实现了IEnumerable 接口或者继承自 IEnumerable 接口的集合类都可以作为DataGrid的数据源。