C# 绑定单个对象';将字段和值转换为两列数据网格格式
我有一个模型课,如下所示C# 绑定单个对象';将字段和值转换为两列数据网格格式,c#,winforms,reflection,datagridview,C#,Winforms,Reflection,Datagridview,我有一个模型课,如下所示 public class EmployeeModel { public string Name { get; set; } public int Age { get; set; } public double Salary { get; set; } } 我希望它的字段和值映射到WinFormDataGridView,如下所示 我采用了下面这样的反思策略 EmployeeModel emp = new EmployeeModel(); emp
public class EmployeeModel
{
public string Name { get; set; }
public int Age { get; set; }
public double Salary { get; set; }
}
我希望它的字段和值映射到WinFormDataGridView,如下所示
我采用了下面这样的反思策略
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对象。我觉得我走错了方向
我有两个问题
为此,请使用
PropertyGrid
:
EmployeeModel emp = new EmployeeModel();
emp.Name = "Dev";
emp.Age = 25;
emp.Salary = 150000;
如果要通过设计器将PropertyGrid
添加到表单中,然后只需将您的对象设置为
SelectedObject
,控件将处理其余部分
this.MyPropertygrid.Text = "Employee";
this.MyPropertyGrid.SelectedObject = emp;
是否需要注释??不能在同一列中使用不同的控件(
combobox
和TextBox
),也许您想使用PropertyGrid
control@Fabio-但我可以将第二列设置为combobox,并使其在其他属性中显示为平面样式,以模拟相同的为什么如果存在另一个控件,则该控件正好用于您需要的目的:或另一个@Fabio-谢谢!这对我来说是一场革命你能补充一下吗?我会接受的。。