デフォルトでは、winform PropertyGrid は事前定義されたクラスのプロパティを編集できることがわかっています。ただし、動的に作成されたオブジェクトを編集する必要がある場合もあります。以下のコードを参照してください。
ParamForm.Show(new { Firstname = "John", Lastname = "Herby" })
ParamForm ウィンドウには、PropertyGrid と Button の 2 つのコントロールが含まれています。文字列またはブール値フィールドのみを含む動的オブジェクトを編集できるように設計されています。
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 で動的に作成されたオブジェクトを編集できるようにするにはどうすればよいでしょうか。