0

这是我的 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......

任何帮助,将不胜感激。谢谢。

4

1 回答 1

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();
于 2012-09-12T18:39:53.627 回答