我对Silverlight很陌生,并试图以“正确的方式”做事。
问题是:我需要从Web服务器获取XML,我需要在数据网格中显示该数据。
我已经四处寻找并且我设法得到了以下内容:
说我的XML看起来像:
<customers>
<customer>
<name>A Person</name>
<address>my address</address>
</customer>
<customer>
<name>A Guy</name>
<address>my address 2</address>
</customer>
</customers>
我可以检索这个并填充POCO,例如:
public class Customer
{
public string Name { get; set; }
public string Address { get; set; }
}
...
XDocument oDoc = //read from a string asnychronously
var myData = from info in oDoc.Descendants("customer")
select new Customer
{
Name = Convert.ToString(info.Element("name").Value),
Address = Convert.ToString(info.Element("address").Value
};
_grid.ItemsSource = myData;
但是,如果我采用这种方法,我将不会真正使用Silverlight的动态绑定功能。
我怎样才能以“Silverlight”的方式做到这一点,这样当我(或其他真正了解silverlight的人)看了几年后的代码时,不要讨厌我讨厌的事情。
答案 0 :(得分:2)
使用XMLSerializer。Deserialize方法自动反序列化XML,而无需处理XDocument。你的课将如下所示:
[XmlRoot]
public class Customer
{
[XmlElement]
public string Name { get; set; }
[XmlElement]
public string Address { get; set; }
}
将数据反序列化后,请查看MVVM如何正确地将数据绑定到您的视图。