添加大型数据集的 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 个项目?),如此处所述。
您是否尝试过使用 MVVM 和ObservableCollection
?,并在从文件中读取项目后直接在ObservablCollection
中添加项目。还要确保您的读取和处理是异步的