滚动超过500万行后,UWP Listview停止显示项目

时间:2017-12-06 21:58:36

标签: c# uwp

我在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进行数据虚拟化

0 个答案:

没有答案