2015-12-20 66 views
0

我有一個名爲items的變量,該變量找到一組XML元素的後代,並將它們綁定到LongListViewer(在Windows Phone 8.1 Silverlight中)的TextBlock。當我去嘗試設置與ItemSource這個變量,它想出了一個錯誤:投影變量作爲LongListViewer的ItemSource

Cannot implicitly convert type System.Collections.Generic.IEnumerable<Lists.ListsXmlBinder> to System.Collections.IList . An explicit conversion exists (are you missing a cast?)

這裏是我的代碼:

using (var storage = IsolatedStorageFile.GetUserStoreForApplication()) 
{ 
    using (Stream stream = storage.CreateFile("list.xml")) 
    { 
     XDocument document = XDocument.Load(stream); 
     document.Element("lists").Add(new XElement("list", new XElement("name", "random list"), new XElement("date", DateTime.Now.ToString()))); 
     document.Save(stream); 

     var items = from query in document.Descendants("list") 
        select new ListsXmlBinder 
        { 
         Name = query.Element("name").Value, 
         Date = query.Element("date").Value 
        }; 

     lists_ListViewer.ItemsSource = items; 
    } 
} 

如何解決這個問題有什麼建議?

回答

3

通話只需添加到ToList()IEnumerable轉換到一個列表:

var items = (from query in document.Descendants("list") 
          select new ListsXmlBinder 
          { 
           Name = query.Element("name").Value, 
           Date = query.Element("date").Value 
          }).ToList(); 
+0

謝謝sstan響應。它非常感謝你。 – Razor