C# 将.xml文件绑定到objectlistview中的TreeListView
我必须将xml绑定到Objectlistview中的TreelistviewC# 将.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> <
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);
}