<customers>
<customer ID="C001">
<name>Acme Inc.</name>
<phone>12345</phone>
<address>value</address>
</customer>
<customer ID="C002">
<name>Star Wars Inc.</name>
<phone>23456</phone>
<address>value</address>
</customer>
</customers>
dataGridView1.DataMember = "customer";
当我将datamember作为“customer”时,它显示了datagrid中xml的所有子节点。如何仅显示ID
&amp;网格中的name
?
答案 0 :(得分:2)
要显示Id和Name,您可以执行以下操作:
var document = XDocument.Load(@"C:\1.xml");
var customers = document.Descendants("customer")
.Select(arg =>
new
{
Id = arg.Attribute("Id"),
Name = arg.Descendants("name").Select(x => x.Value).Single()
})
.ToList();
dataGridView1.DataSource = customers;
答案 1 :(得分:2)
在将所需列的可见性设置为true后,您可以在网格中加载xml文档,否则为false。
DataSet data = new DataSet();
data.ReadXml("C:\\xml.xml");
this.dataGridView1.DataSource = data;
this.dataGridView1.DataMember = "customer";
foreach (DataGridViewColumn column in this.dataGridView1.Columns)
{
if (column.Name == "ID" || column.Name == "name")
column.Visible = true;
else
column.Visible = false;
}
答案 2 :(得分:1)
您可以关闭不需要的列,例如:
dataGridView1.Columns["address"].Visible = false;
//or
dataGridView1.Columns[2].Visible = false;
对于任何情况来说,这不是美丽的方式。但它是即时的。
答案 3 :(得分:0)
使用数据集读取xml,然后将Grid的数据源设置为数据集表。