正如我们所知,默认情况下,winform PropertyGrid 能够编辑预定义类的属性。但是,有时我们可能需要编辑动态创建的对象。参考下面的代码:
ParamForm.Show(new { Firstname = "John", Lastname = "Herby" })
ParamForm 窗口包含 2 个控件,一个 PropertyGrid 和一个 Button。它旨在能够编辑仅包含字符串或布尔字段的动态对象。
public static dynamic Show(dynamic args)
{
var frm = new ParamForm(args);
frm.ShowDialog();
return frm.Result;
}
public ParamForm(dynamic args)
{
InitializeComponent();
propertyGrid.SelectedObject = ag;
}
问题是在 PropertyGrid 控件中显示的 Firstname & Lastname 显示为灰色且无法编辑。那么如何让 PropertyGrid 能够编辑动态创建的对象呢?