将变量转换为 LongListViewer 的 ItemSource

Cast variable as an ItemSource for a LongListViewer

我有一个名为 items 的变量,它查找 XML 元素的一组后代并将它们绑定到 [=24 中的 LongListViewer 上的 TextBlock =] Phone 8.1 银光。当我尝试用这个变量设置 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;
    }
}

有什么解决问题的建议吗?

只需添加对 ToList() 的调用即可将 IEnumerable 转换为列表:

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