这是我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<Kids>
<Child>
<Name>Kid1</Name>
<FirstName>hisname</FirstName>
</Child>
<Child>
<Name>kid2</Name>
<FirstName>SomeName</FirstName>
</Child>
</Kids>
我使用Linq to XML来读取我的xml文件。 现在我想将结果数据绑定到我的文本块中 windows phone 7应用程序。 我有一个名为SerializeKidToXml的类。在那个类中,我有一个名为ReadXML的函数,如下所示:
public string ReadXml()
{
StringBuilder s = new StringBuilder();
using (IsolatedStorageFileStream test = new IsolatedStorageFileStream("YourKids.xml", FileMode.Open, store))
{
var testxdoc = XDocument.Load(test);
var returnval = from item in testxdoc.Descendants("Kids").Elements("Child")
select new
{
kind = item.Element("FirstName").Value
};
return s.Append(returnval).ToString();
}
}
现在我希望此查询的结果与所找到的文本块绑定 在XAML页面的界面上。我试图通过使用XAML页面后面的代码来绑定它。这就是我现在所拥有的:
private void button1_Click(object sender, RoutedEventArgs e)
{
SerializeKidToXml t = new SerializeKidToXml();
textBlock1.Text = t.ReadXml();
}
XAML页面上的文本块没有显示结果字符串,而是显示: System.LINQ.Enumerable ......
任何帮助将不胜感激。 THX。
答案 0 :(得分:0)
这可能会对您有所帮助:
var returnval = from item in testxdoc.Descendants("Kids").Elements("Child")
select item.Element("FirstName").Value;
foreach(var str in returnval)
{
s.Append(", ");
s.Append(str);
}
return s.ToString();
如果您想在列表框中显示孩子:
public IEnumerable<string> ReadXml()
{
using (IsolatedStorageFileStream test = new IsolatedStorageFileStream("YourKids.xml", FileMode.Open, store))
{
var testxdoc = XDocument.Load(test);
var collection = from item in testxdoc.Descendants("Kids").Elements("Child")
select item.Element("FirstName").Value;
return collection;
}
}
并使用它:
SerializeKidToXml t = new SerializeKidToXml();
listBox.ItemsSource = t.ReadXml();