你好!
DataGrid 是 Framework 1.1 时的控件,Framework 2.0 以及后使用 DataGridView 控件代替原来的 DataGrid 控件。
在 DataGridView 控件上述问题使用默认绑定就可以了,如下代码:
public partial class Sample : Form
{
public Sample()
{
InitializeDemo();
}
void InitializeDemo()
{
var categories = new List<EmployeeCategory>
{
new EmployeeCategory{ EmployeeCategoryId = 1, Name = "Category1"},
new EmployeeCategory{ EmployeeCategoryId = 2, Name = "Category2"}
};
var employees = new List<Employee>
{
new Employee{ EmployeeId =1, Name = "Employee1", Category = 1 },
new Employee{ EmployeeId =2, Name = "Employee2", Category = 2 }
};
var col1 = new DataGridViewTextBoxColumn()
{
HeaderText = "EmployeeId",
DataPropertyName = "EmployeeId"
};
var col2 = new DataGridViewTextBoxColumn()
{
HeaderText = "Name",
DataPropertyName = "Name"
};
var col3 = new DataGridViewComboBoxColumn()
{
HeaderText = "Category",
DataPropertyName = "Category",
DisplayMember = "Name",
ValueMember = "EmployeeCategoryId",
DataSource = categories
};
var dg = new DataGridView { AutoGenerateColumns = false, Dock = DockStyle.Fill };
dg.Columns.Add(col1);
dg.Columns.Add(col2);
dg.Columns.Add(col3);
dg.DataSource = employees;
this.Controls.Add(dg);
}
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; }
public int Category { get; set; }
}
public class EmployeeCategory
{
public int EmployeeCategoryId { get; set; }
public string Name { get; set; }
}
public class DemoData
{
public string Name { get; set; }
public decimal Value { get; set; }
}
}
知识改变命运,奋斗成就人生!