我想使用itemscontrol显示一个重要的项目列表。
我之所以使用itemscontrol,是因为我正在开发的应用程序中的数据模板要复杂得多:提供的示例代码只反映了我所遇到的大小调整问题。
我想:
后面的代码是:
public partial class Page1: Page
{
public List<string> Names { get; set; }
public Page1()
{
InitializeComponent();
Names = new List<string>();
for(int i = 0; i < 10000; i++)
Names.Add("Name : " + i);
My.DataContext = this;
}
}
当我强制ScrollViewer高度为400px时,itemsControl虚拟化按我预期的方式工作:itemsControl显示列表的速度非常快,不管它包含多少项。
但是,如果我删除height=“400px”,列表将展开其高度以显示整个列表,而不管父容器高度如何。更糟的是:看起来
后面
它的容器。
在itemscontrol周围放置一个ScrollViewer可以获得预期的视觉效果,但是虚拟化会消失,显示列表花费的时间太多。
如何实现项目控件的自动高度扩展和虚拟化?