我可以像这样得到PropertyValues
Type mytype=typeof(TextBox);
foreach(PropertyInfo myinfo in mytype.GetProperties())
{
ListBox1.Items.Add(myinfo.Name);
}但是有些属性有子属性,我如何找到i属性的子属性呢?
(属性下的示例Devexpress LookUpEdit组件DataSource、DisplayMember e.t.c属性)谢谢
发布于 2011-06-14 23:05:48
对PropertyInfo.PropertyType.GetProperties执行相同的循环(递归)
发布于 2011-06-14 23:05:17
您可以使用PropertyType属性来查找属性的类型,然后以与检查TextBox属性相同的方式来检查这些子属性。
Type mytype=typeof(TextBox);
foreach(PropertyInfo myinfo in mytype.GetProperties())
{
ListBox1.Items.Add(myinfo.Name);
if(myinfo.Name == "Parent")
{
PropertyInfo subProperty = typeof(Control).GetProperty("Name")
if(subProperty != null)
// Do some more stuff here
}
}发布于 2011-06-14 23:06:44
您需要访问myinfo对象的PropertyType属性,然后使用GetProperties()从那里获取子属性。
foreach(PropertyInfo myinfo in mytype.GetProperties())
{
ListBox1.Items.Add(myinfo.Name);
foreach(PropertyInfo mychildren in myinfo.PropertyType.GetProperties())
{
//do whatever with them
}
}https://stackoverflow.com/questions/6345647
复制相似问题