2012-09-12 44 views
0

这是我的XML文件:数据绑定到TextBlock的在WP7

<?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到XML阅读我的XML文件。 现在我想将结果数据绑定到我的 windows phone 7应用程序中的文本块。 我有一个名为SerializeKidToXml的类。在I类有一个名为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 ......

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

+0

样品并且保存来自xml文件的数据的结构将会很有帮助。 –

回答

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; 

      } 
     } 

,并使用它:你的UI的

SerializeKidToXml t = new SerializeKidToXml(); 
    listBox.ItemsSource = t.ReadXml(); 
+0

thx它部分工作,因为现在textblock显示:{kind = Johnny}。我如何删除{kind =? – user717316

+0

我现在没有Vusial Studio,请尝试更新代码。 –

+0

哇,thx。是否可以使用列表框而不是文本框? – user717316