如何在一页中显示不同集合的两个列表



我想显示TodoCollection的列表,然后是FinishedCollection的列表。我可以将它们放在两个列表中,然后放入StackPanel中。但是stackpanel不支持虚拟化,也没有针对大数据进行优化。

<StackPanel>
    <ListView 
            ItemsSource="{Binding TodoCollection}"
            ItemClick="TodoCollection_ItemClick"
            ItemTemplate="{StaticResource TodoTemplate}"/>
    <ListView 
            ItemsSource="{Binding FinishedCollection}"
            ItemClick="FinishedCollection_ItemClick"
            ItemTemplate="{StaticResource FinishedTemplate}"/>
</StackPanel>

如何在页面中一个接一个地显示两个列表?

如果您想保持ListView的虚拟化,那么您可以使用Grid,或任何其他不给其子结点无限空间的Panel

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <ListView 
        Grid.Row="0"
        ItemsSource="{Binding TodoCollection}"
        ItemClick="TodoCollection_ItemClick"
        ItemTemplate="{StaticResource TodoTemplate}"/>
    <ListView 
        Grid.Row="1"
        ItemsSource="{Binding FinishedCollection}"
        ItemClick="FinishedCollection_ItemClick"
        ItemTemplate="{StaticResource FinishedTemplate}"/>
</Grid>

最新更新