Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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# 将.xml文件绑定到objectlistview中的TreeListView_C#_.net_Listview_Objectlistview_Treelistview - Fatal编程技术网

C# 将.xml文件绑定到objectlistview中的TreeListView

C# 将.xml文件绑定到objectlistview中的TreeListView,c#,.net,listview,objectlistview,treelistview,C#,.net,Listview,Objectlistview,Treelistview,我必须将xml绑定到Objectlistview中的Treelistview TestSuite.xml <TestSuite> <TestCase name="TestCase" UID="" State="" DataSourceId=""> <TestModule name="Recording" State="Checked" UID=""></TestModule> <

我必须将xml绑定到Objectlistview中的Treelistview
TestSuite.xml

<TestSuite>
        <TestCase name="TestCase" UID="" State="" DataSourceId="">
            <TestModule name="Recording" State="Checked" UID=""></TestModule>
            <TestModule name="Recording1" State="Checked" UID=""></TestModule>      
        </TestCase>
        <TestCase name="TestCase" UID="" State="" DataSourceId="">
            <TestModule name="Recording" State="Checked" UID=""></TestModule>
            <TestModule name="Recording1" State="Checked" UID=""></TestModule>
        </TestCase>
    </TestSuite>
下面是在表单加载时编写的将xml绑定到treeview的代码

        private void TestTreeViewForm_Load(object sender, EventArgs e)
        {  
            StreamReader sr = new StreamReader(Path.Combine(@"D:\Test Suite", "TestSuite.xml"));
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(TestSuite));
            TestSuite testSuite = (TestSuite)xmlSerializer.Deserialize(sr);

            // Deserialize other XML as necessary

            List<TestSuite> TestSuiteCollection = new List<TestSuite>();
            TestSuiteCollection.Add(testSuite);           

            // Add other MyTrack objects to collection
            treeListView1.SetObjects(TestSuiteCollection);

        }
在treelistview中运行后,显示错误“'Name'不是类型为的无参数方法、属性或字段…”

我已经参考了下面的链接将xml加载到treelistview

    this.olvColumn1.AspectName = "Name";
                this.olvColumn1.Text = "Name";
                this.olvColumn1.Width = 180;
                this.olvColumn1.WordWrap = true;
this.treeListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
            this.olvColumn1});

}

    this.olvColumn1.AspectName = "Name";
                this.olvColumn1.Text = "Name";
                this.olvColumn1.Width = 180;
                this.olvColumn1.WordWrap = true;
this.treeListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
            this.olvColumn1});
public MyForm()
        {
            InitializeComponent();

            //LoadTree();
            SetupColoumn();
            LoadTree1();
        }

        private void SetupColoumn()
        {
            // Get the size of the file system entity. 
            // Folders and errors are represented as negative numbers
            this.olvColumn1.AspectGetter = delegate(object x)
            {
                return ((XmlNode)(x)).Attributes["name"].Value;
            };
        }
        private void LoadTree1()
        {
            XmlDocument reader = new XmlDocument();
            reader.Load(@"F:\Test1.xml");
            ArrayList roots = new ArrayList();
            String xpath = "/TestSuite/TestCase";
            var nodes = reader.SelectNodes(xpath);

            foreach (XmlNode childrenNode in nodes)
            {
                roots.Add(childrenNode);
                //roots.Add(childrenNode.Attributes["Name"].Value);
            }

            this.treeListView1.CanExpandGetter = delegate(object x)
            {
                //return ((MyFileSystemInfo)x).IsDirectory;
                return ((XmlNode)x).HasChildNodes;
            };

            this.treeListView1.ChildrenGetter = delegate(object x)
            {
                ArrayList children = new ArrayList();
                var node1 = ((XmlNode)x).ChildNodes;
                if (x is XmlNode)
                {
                    //foreach (XmlNode node in roots)
                    {
                        foreach (XmlNode n in node1)
                        {
                            children.Add(n);
                        }
                    }
                }

                return children;

            };

            treeListView1.SetObjects(roots);
        }