我想從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.確保正確重建解決方案並運行新代碼。 –