【发布时间】:2018-04-05 11:34:27
【问题描述】:
我在 C# 中创建了一个 WinForm,现在我想显示我的 XML 文件的选定数据以显示在 DataGridView 中。我发现一些链接有助于在 DataGridView 中显示所选元素,但它没有按应有的方式显示。
以下是我的 XML 文件
<?xml version="1.0" encoding="utf-8"?>
<root>
<Vehicle>
<Number_Plate>PHZ-888</Number_Plate>
<Make>Honda</Make>
<Model>City</Model>
<Year>2008</Year>
</Vehicle>
<Vehicle>
<Number_Plate>VGQ-141</Number_Plate>
<Make>Suzuki</Make>
<Model>Mehran</Model>
<Year>2001</Year>
</Vehicle>
<Vehicle>
<Number_Plate>VZH-403</Number_Plate>
<Make>Audi</Make>
<Model>A7</Model>
<Year>2008</Year>
</Vehicle>
<Vehicle>
<Number_Plate>BCH-184</Number_Plate>
<Make>Honda</Make>
<Model>Accord CL9</Model>
<Year>2007</Year>
</Vehicle>
</root>
这是我试图用来获取特定元素的查询:
XDocument xdoc = XDocument.Load("vehicle20.xml");
var query = from key in xdoc.Descendants("Vehicle")
where key != null && (key.Element("Make").Value == makelist)
select key.Value;
dataGridView1.DataSource = query.ToList();
makelist是我通过车型来搜索的方式,比如“Honda”。
查询后显示如下:
但我想显示指定车辆元素的所有后代,比如奥迪只显示奥迪数据,这样:
【问题讨论】:
-
我认为你想使用“select key”而不是“select key.Value”。
标签: c# xml winforms data-binding datagridview