【发布时间】:2018-07-30 15:49:09
【问题描述】:
我正在尝试在 UWP 应用中使用 ListView 来显示一些表格数据。我能够很好地生成表格,但是,当将 ListView 绑定到大于大约 50,000 个项目左右的集合时,ListView 项目会溢出 listview 本身的边界,这可以通过将边框应用于 listview 来看到如附图所示。
有没有办法防止这种行为?
Listview Items Overflowing Container
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="5*"/>
<RowDefinition Height="50*"/>
<RowDefinition Height="5*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2.5*"/>
<ColumnDefinition Width="15.8*"/>
<ColumnDefinition Width="15.8*"/>
<ColumnDefinition Width="15.8*"/>
<ColumnDefinition Width="15.8*"/>
<ColumnDefinition Width="15.8*"/>
<ColumnDefinition Width="15.8*"/>
<ColumnDefinition Width="2.5*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="6">
<ListView x:Name="CartGrid" SelectionMode="Extended" VerticalAlignment="Top" BorderBrush="DodgerBlue" BorderThickness="2">
<ListView.HeaderTemplate>
<DataTemplate>
<Grid Padding="12" Background="{ThemeResource SystemControlBackgroundBaseLowBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="408"/>
<ColumnDefinition Width="360"/>
<ColumnDefinition Width="360"/>
</Grid.ColumnDefinitions>
<TextBlock Text="First Name" Style="{ThemeResource CaptionTextBlockStyle}"/>
<TextBlock Grid.Column="1" Text="Surname" Style="{ThemeResource CaptionTextBlockStyle}"/>
<TextBlock Grid.Column="2" Text="Category" Style="{ThemeResource CaptionTextBlockStyle}"/>
</Grid>
</DataTemplate>
</ListView.HeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate x:Name="TableDataTemplate" x:DataType="local:Person">
<Grid Height="48" AutomationProperties.Name="{x:Bind Firstname}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="48"/>
<ColumnDefinition Width="360"/>
<ColumnDefinition Width="360"/>
<ColumnDefinition Width="360"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" VerticalAlignment="Center" Style="{ThemeResource BaseTextBlockStyle}" Text="{x:Bind Firstname}" />
<TextBlock Grid.Column="2" VerticalAlignment="Center" Text="{x:Bind Lastname}"/>
<TextBlock Grid.Column="3" VerticalAlignment="Center" Text="{x:Bind Category}"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</Grid>
【问题讨论】:
-
请贴出 XAML 代码
-
这种行为真的只发生在超过 50000 项的情况下?
-
是的,如果我将其更改为 40,000 左右,则不会溢出