gpt4 book ai didi

c# - WPF ListView 大数据时性能很差

转载 作者:行者123 更新时间:2023-12-02 17:42:09 55 4
gpt4 key购买 nike

我在使用 WPF 中的 ListView 时遇到了非常糟糕的性能,使用了大约 30000 条记录。据我所知,虚拟化应该打开,因为这是默认设置(我什至在 XAML 中明确打开它)。

表现不佳的表现是这样的:

  • 进行初始绑定(bind)非常慢(几分钟)
  • 滚动速度非常慢(超过一分钟)
  • 当您选择一行时非常慢(同样超过一分钟)。

我希望有人能看一下 XAML,让我有一些想法。

<ListView Name="grdComms" Grid.Row="0" Grid.Column="0" SelectedItem="{Binding SelectedHeader}"
VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"
ScrollViewer.IsDeferredScrollingEnabled="True">
<ListView.View>
<GridView >
<GridViewColumn Header="Account Name" DisplayMemberBinding="{Binding Path=AccountName}" Width="150" />
<GridViewColumn Header="Account Number" DisplayMemberBinding="{Binding Path=AccountNumber}" Width="120" />
<GridViewColumn Header="Type" DisplayMemberBinding="{Binding Path=Type}" Width="80" />
<GridViewColumn Header="Delivery" DisplayMemberBinding="{Binding Path=Delivery}" Width="80" />
<GridViewColumn Header="Count" DisplayMemberBinding="{Binding Path=RequestCount}" Width="80" />
<GridViewColumn Width="80" Header="DeDupe">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Width="80">
<CheckBox HorizontalAlignment="Center" IsChecked="{Binding Path=SelectedForProcessing, Mode=TwoWay}"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>

注意:ItemsSource 在代码中设置为 ObservableCollection。这是一组非常简单的属性(几个字符串,一个 bool 值),它是模型上的一个 ViewModel,它(再次)是字符串和 bool 值。

我正在阅读人们使用大型记录集没有问题的地方,但我尝试过的各种方法似乎都不起作用。

如果需要更多信息,请告诉我。

最佳答案

请无视我。一旦我将 ListView 的 MaxHeight 设置为大于它需要的值,问题就完全消失了。我发誓我试过这个,显然没有。

往前走,这里没什么可看的……

灰色

关于c# - WPF ListView 大数据时性能很差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19426076/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com