添加大型数据集的 UWP 列表视图

本文关键字:列表 视图 UWP 大型 数据集 添加 | 更新日期: 2023-09-27 17:56:11

我正在使用类似于以下内容的列表视图:

<ListView Margin="10" Name="myListView">
 <ListView.ItemTemplate>
       <DataTemplate>
            <WrapPanel>
                <TextBlock Text="Name: " />
                <TextBlock Text="{Binding Name}" FontWeight="Bold" />
                </WrapPanel>
        </DataTemplate>
 </ListView.ItemTemplate>

我正在创建一个目录中所有文件的列表;一个可能非常大的数字。数据集的加载在这里没有问题;我正在预处理数据(从文件加载、生成临时列表<>、排序等),因此 IO 性能在这里不是问题。

使用我预填充的 List<> 对象,我做了一个简单的 foreach 并添加:

private async Task AddItemsToList()
{
    foreach(MyObject item in List<MyObject>)
    {
        myListView.Add(item)
    }
}

以上是一个模型,但是我的代码是相同的。

处理此 foreach 时,UI 不会随着每个项目的添加而更新。一旦 foreach 完成,它就会显示为一个大块。AddItemsToList() 不是等待

我已经阅读了几篇文章(尤其是这篇文章),并且印象中UWP应该自动增量加载和使用占位符。

任何建议将不胜感激!

安德鲁

注意:我知道 UI 虚拟化非常适合过多的数据集(>10,000 个项目?),如此处所述。

添加大型数据集的 UWP 列表视图

您是否尝试过使用 MVVM 和ObservableCollection?,并在从文件中读取项目后直接在ObservablCollection中添加项目。还要确保您的读取和处理是异步的