Tôi đang cố gắng liên kết một Silverlight DataGrid với kết quả của một cuộc gọi dịch vụ WCF. Tôi đã không nhìn thấy dữ liệu được hiển thị trong lưới, vì vậy khi tôi chạy qua trình gỡ lỗi, tôi nhận thấy rằng XDocument.Descendants() không trả về bất kỳ phần tử nào ngay cả khi tôi đã chuyển vào một tên phần tử hợp lệ. Đây là XML được truyền lại từ các dịch vụ:XDocument.Descendants() không trả về bất kỳ phần tử nào
<ArrayOfEmployee xmlns="http://schemas.datacontract.org/2004/07/Employees.Entities" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Employee>
<BirthDate>1953-09-02T00:00:00</BirthDate>
<EmployeeNumber>10001</EmployeeNumber>
<FirstName>Georgi</FirstName>
<Gender>M</Gender>
<HireDate>1986-06-26T00:00:00</HireDate>
<LastName>Facello</LastName>
</Employee>
<Employee>
<BirthDate>1964-06-02T00:00:00</BirthDate>
<EmployeeNumber>10002</EmployeeNumber>
<FirstName>Bezalel</FirstName>
<Gender>F</Gender>
<HireDate>1985-11-21T00:00:00</HireDate>
<LastName>Simmel</LastName>
</Employee>
</ArrayOfEmployee>
Và đây là phương pháp tôi sử dụng để tải các kết quả vào một tập hợp các đối tượng mang tính chất sử dụng LINQ to XML, và sau đó gắn bộ sưu tập cho lưới điện .
void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs args)
{
if (args.Error != null) return;
var xml = XDocument.Parse(args.Result);
var employees = from e in xml.Descendants("Employee")
select new
{
EmployeeNumber = e.Element("EmployeeNumber").Value,
FirstName = e.Element("FirstName").Value,
LastName = e.Element("LastName").Value,
Birthday = e.Element("BirthDate").Value
};
DataGrid.SelectedIndex = -1;
DataGrid.ItemsSource = employees;
}
Bất kỳ ý tưởng nào tại sao xml.Descendants("Employee")
không trả lại bất kỳ điều gì?
Cảm ơn!
Bạn đã đúng, tôi cần bao gồm không gian tên. Cảm ơn bạn đã trợ giúp! –