C# 在propertygrid C中将对象列表转换为ExpandableObject#
您好,我知道这可能会被标记为重复,也可能不会,但我正在尝试将对象列表显示为属性网格中自己的可扩展对象 我有两个班级一个是SodeAttribute班级:C# 在propertygrid C中将对象列表转换为ExpandableObject#,c#,propertygrid,C#,Propertygrid,您好,我知道这可能会被标记为重复,也可能不会,但我正在尝试将对象列表显示为属性网格中自己的可扩展对象 我有两个班级一个是SodeAttribute班级: public class SodeAttribute { /// <summary> /// Name of attribute /// </summary> public string Name { get; set; } /// <summary>
public class SodeAttribute
{
/// <summary>
/// Name of attribute
/// </summary>
public string Name { get; set; }
/// <summary>
/// Value of attribute
/// </summary>
public string Value { get; set; }
}
公共类SodeAttribute
{
///
///属性名称
///
公共字符串名称{get;set;}
///
///属性值
///
公共字符串值{get;set;}
}
和SodeElement类:
public class SodeElement
{
//[Browsable(false)]
/// <summary>
/// Type of sode element
/// </summary>
public string Type { get; set; }
/// <summary>
/// List of Sode Attributes
/// </summary>
public List<SodeAttribute> SodeAttributes = new List<SodeAttribute>();
/// <summary>
/// List of Sode Elements
/// </summary>
public List<SodeElement> ChildElements = new List<SodeElement>();
}
公共类SodeElement
{
//[可浏览(错误)]
///
///钠元素类型
///
公共字符串类型{get;set;}
///
///Sode属性列表
///
公共列表SodeAttributes=新列表();
///
///Sode元素列表
///
public List ChildElements=new List();
}
其中包含一个SodeAttributes列表和一个SodeElements列表。这基本上表示一个XML结构,如下所示:
<SimObject Name="Wind Sock">
<Placement Lat="47.1821" Lon="7.4188" Alt="0#AGL" Hdg="0.0"/>
<Model SimTitle="12bPilot_SODE_Windsock_Slow">
<VariableDrivenRotation Variable="WindDirection" Axis="HEADING" Animated="No"/>
<ConditionalVisibility Variable="WindSpeed" Value="0-14"/>
</Model>
<Model SimTitle="12bPilot_SODE_Windsock_Medium_Speed">
<VariableDrivenRotation Variable="WindDirection" Axis="HEADING" Animated="No"/>
<ConditionalVisibility Variable="WindSpeed" Value="15-28"/>
</Model>
<Model SimTitle="12bPilot_SODE_Windsock_Fast">
<VariableDrivenRotation Variable="WindDirection" Axis="HEADING" Animated="No"/>
<ConditionalVisibility Variable="WindSpeed" Value="29-60"/>
</Model>
</SimObject>
其中,XML的属性作为SodeAttribute对象存储在Sode属性列表中,根SimObject的任何子元素存储在SodeElement列表中,例如,和子元素
因此在这个XML中,SodeElement有3个子SodeElement和1个Sode属性
例如,我希望SimObject(例如模型)的任何子元素显示为可扩展对象,任何属性显示为该可扩展对象中的属性,并且该模型元素“模型”中的任何其他元素显示为可扩展对象,例如如下所示
例1:
例2:
我已经尝试过很多次了,我想我正处于一个循环中,所以我喜欢一个有效的例子。谢谢大家! 您是否可以尝试用XML数据(而不是地址)显示您希望看到的内容?底部的图片是我希望属性网格基本上显示的,例如,在最后一张图片中,address2是模型中的模型将是属性SimTitle,值为12bPilot\u SODE\u Windsock\u Slow,在此模型中可扩展对象创建一个名为