Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在propertygrid C中将对象列表转换为ExpandableObject#_C#_Propertygrid - Fatal编程技术网

C# 在propertygrid C中将对象列表转换为ExpandableObject#

C# 在propertygrid C中将对象列表转换为ExpandableObject#,c#,propertygrid,C#,Propertygrid,您好,我知道这可能会被标记为重复,也可能不会,但我正在尝试将对象列表显示为属性网格中自己的可扩展对象 我有两个班级一个是SodeAttribute班级: public class SodeAttribute { /// <summary> /// Name of attribute /// </summary> public string Name { get; set; } /// <summary>

您好,我知道这可能会被标记为重复,也可能不会,但我正在尝试将对象列表显示为属性网格中自己的可扩展对象

我有两个班级一个是SodeAttribute班级:

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,在此模型中可扩展对象创建一个名为