我在UWP的ListView类中滚动大量数据时出现问题,我发现即使是最简单的设置也会出现错误:
我的MainPage.xaml如下:
<Page
x:Class="ListViewTestUWP.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ListViewTestUWP"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ListView ItemsSource="{Binding}"></ListView>
</Grid>
</Page>
使用MainPage.xaml.cs如下
public MainPage()
{
this.InitializeComponent();
ObservableCollection<string> test = new ObservableCollection<string>();
for(int i=0; i < 10000000; ++i)
test.Add(i.ToString());
this.DataContext = test;
}
IMG: In this instance items stop rendering after the 6 millionth row
我还注意到设置ItemContainerStyle的MinHeight对bug的开始位置有影响,所以我认为它是某种舍入问题。
有人知道解决这个问题的方法吗?
编辑:更改为使用ObservableCollection进行数据虚拟化