我有一个模型类如下。
public class EmployeeModel
{
public string Name { get; set; }
public int Age { get; set; }
public double Salary { get; set; }
}
我希望它的字段和值映射到WinForm DataGridView,如下所示。
我采用了反思策略,如下所示。
EmployeeModel emp = new EmployeeModel();
emp.Name = "Dev";
emp.Age = 25;
emp.Salary = 150000;
PropertyInfo[] props = typeof(EmployeeModel).GetProperties();
foreach (PropertyInfo prop in props)
{
object val = prop.GetValue(emp, null);
dataGridView1.Rows.Add(prop.Name, val);
}
现在我可能需要循环列并进行一些反射以将这些值转换为EmployeeModel对象。我觉得我走错了路。
我有两个问题。
答案 0 :(得分:2)
为此目的使用PropertyGrid
:
EmployeeModel emp = new EmployeeModel();
emp.Name = "Dev";
emp.Age = 25;
emp.Salary = 150000;
如果您要通过设计师将PropertyGrid
添加到表单中,
然后将您的对象设置为SelectedObject
,控件将处理其余的
this.MyPropertygrid.Text = "Employee";
this.MyPropertyGrid.SelectedObject = emp;