如何在PropertyGrid中查看对象属性
本文关键字:对象 属性 PropertyGrid | 更新日期: 2023-09-27 17:52:16
现在我有一个类型A的对象,它正在被PropertyGrid查看。然而,它的一个属性是B类型的,B类型的属性是不可扩展的。
a)我可以扩展自定义对象属性b)这些更改被绑定到该属性
这是我到目前为止的代码:
using System;
using System.Windows.Forms;
using System.ComponentModel;
namespace PropGridTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
A a = new A
{
Foo = "WOO HOO!",
Bar = 10,
BooFar = new B
{
FooBar = "HOO WOO!",
BarFoo = 100
}
};
propertyGrid1.SelectedObject = a;
}
}
public class A
{
public string Foo { get; set; }
public int Bar { get; set; }
public B BooFar { get; set; }
}
public class B
{
public string FooBar { get; set; }
public int BarFoo { get; set; }
}
}
您可以使用ExpandableObjectConverter
类。
该类增加了对属性的支持对象上的方法和属性由TypeConverter提供。使一种属性可扩展在PropertyGrid中指定它标准的TypeConverter的实现GetPropertiesSupported和getproperty .
要使用此转换器,使用 TypeConverterAttribute
修饰所讨论的属性,并将typeof(ExpandableObjectConverter)
作为构造函数参数。
public class A
{
public string Foo { get; set; }
public int Bar { get; set; }
[TypeConverter(typeof(ExpandableObjectConverter))]
public B BooFar { get; set; }
}