我想从XML获取我的所有信息到Datagrid。XML Datagrid根元素 - foreach循环
目前我有这样的:
class ColumnNames
{
public string id { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string Computer { get; set; }
public ColumnNames(
string id,
string Name,
string Surname,
string Computer,
{
this.id = id;
this.Name = Name;
this.Surname = Surname;
this.Computer = Computer;
}
}
private void DataGrid_Loaded(object sender, RoutedEventArgs e)
{
XDocument getElement = XDocument.Load("details.xml");
foreach (var npc in getElement.Descendants("user"))
{
string id = npc.Attribute("id").Value;
string Name = npc.Attribute("Name").Value;
string Surname = npc.Attribute("Surname").Value;
string Computer = npc.Attribute("Computer").Value;
var items = new List<ColumnNames>();
items.Add(new ColumnNames(id, Name, Surname, Computer));
var grid = sender as DataGrid;
grid.ItemsSource = items;
}
}
这是我的XML
<info>
<user id="1" Name="Max0" Surname="0test" Computer="0" />
<user id="2" Name="Max1" Surname="1test" Computer="1" />
<user id="3" Name="Max2" Surname="2test" Computer="2" />
<user id="4" Name="Max3" Surname="3test" Computer="3" />
<user id="5" Name="Max4" Surname="4test" Computer="4" />
<user id="6" Name="Max5" Surname="5test" Computer="5" />
</info>
我所试图做的就是把所有的根元素中的数据与列ID的数据网格,姓名和电脑。我的问题是,在目前它只是变得第一项,并当我试图使用以下命令:
foreach (var npc in getElement.Root("info"))
我得到了一个错误说
“非可调用成员“的System.Xml。 Linq.XDocument.Root'不能像 一样使用。“
我不知道我该怎么做这项工作,已经有相当一段时间了,我一直试图让这个固定的,一些帮助很好。谢谢。
UPDATE:
这是新代码后,大卫慷慨地帮助了我。虽然它还没有工作。
你确定DataBind()正在被调用..你有没有通过调试器,并且正在执行这段代码。代码对我来说看起来很好。 –
它只会经历一次,但其余的不会经过它。 –
经历了一次,foreach循环? 1.确保你的XML文件是正确的。 2.确保正确重建解决方案并运行新代码。 –