2012-09-12 80 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