【发布时间】:2014-02-08 23:02:24
【问题描述】:
我看到 Windows Phone 7 中的默认日历应用程序有一个 Day 标签。在那个标签中是一个ListBox,可以无休止地滚动,而且非常流畅。
我正在考虑更改它的绑定源,但不知道该怎么做。
有没有办法做到这一点?
【问题讨论】:
-
尝试动态加载/卸载到屏幕/屏幕外列表
我看到 Windows Phone 7 中的默认日历应用程序有一个 Day 标签。在那个标签中是一个ListBox,可以无休止地滚动,而且非常流畅。
我正在考虑更改它的绑定源,但不知道该怎么做。
有没有办法做到这一点?
【问题讨论】:
您可以尝试绑定到自定义 IEnumerator。一个简单的方法是创建一个返回 IEnumerable 的方法,然后使用 yield return 语句返回元素:
public IEnumerable<int> GetDataSource()
{
int i = 0;
while (true)
{
yield return i++;
}
}
然后将其分配给您的列表框:
this.ListBox.ItemsSource = this.GetDataSource();
只需确保在列表框上启用了数据虚拟化,以便可以动态加载项目(如果列表框尝试一次加载整个无限数据源,显然无法正常工作)
【讨论】:
VirtualizingStackPanel