Как мы знаем, по умолчанию PropertyGrid winform может редактировать свойства предопределенного класса. Однако иногда нам может понадобиться отредактировать динамически созданные объекты. Обратитесь к приведенному ниже коду:
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, отображаются серым цветом и не могут быть отредактированы. Так как же сделать так, чтобы PropertyGrid мог редактировать динамически созданные объекты?