将变量转换为 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();
我有一个名为 items
的变量,它查找 XML 元素的一组后代并将它们绑定到 [=24 中的 LongListViewer
上的 TextBlock
=] Phone 8.1 银光。当我尝试用这个变量设置 ItemSource
时,它出现了一个错误:
Cannot implicitly convert type
System.Collections.Generic.IEnumerable<Lists.ListsXmlBinder>
toSystem.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();