CollectionView 的内部列表超级滞后

问题描述 投票:0回答:1

我有一个 CollectionView 可以说是老师,每个老师都有学生。我想列出老师,在里面我想列出所有学生及其自己的数据 它按预期工作,但超级滞后,如果我删除学生集合视图,滚动将再次平滑。

模板被包裹在cardview内部

  <CollectionView
        ItemsSource="{Binding TeacherItems}">
        <CollectionView.ItemTemplate>
            <DataTemplate x:DataType="models:Teacher">
                    <templates:TeacherItemTemplate />
            </DataTemplate>
        </CollectionView.ItemTemplate>
</CollectionView>

教师项目模板:

   <Grid RowDefinitions="Auto,Auto,Auto">
        <Label
            Grid.Row="0"
            FontSize="Subtitle"
            LineBreakMode="TailTruncation"
            Text="{Binding Name}"
            TextColor="{DynamicResource TextColor}"
            VerticalTextAlignment="Center" />

        <Label
            Grid.Row="1"
            Grid.ColumnSpan="2"
            FontSize="Caption"
            HorizontalOptions="Fill"
            LineBreakMode="WordWrap"
            Text="{Binding RegistrationDate, StringFormat='{0:dddd, MMMM d HH:mm}'}"
            TextColor="{DynamicResource TextSecondaryColor}" />

<CollectionView Grid.Row="2" ItemsSource="{Binding Students}">
    <CollectionView.ItemTemplate>
        <DataTemplate x:DataType="models:Student">
            <StackLayout Orientation="Horizontal">
                <Label
                    FontSize="Caption"
                    Text="{Binding Name}"
                    TextColor="{DynamicResource TextSecondaryColor}" />
                <Label
                    FontSize="Caption"
                    Text=" - "
                    TextColor="{DynamicResource TextSecondaryColor}" />
                <Label
                    FontSize="Caption"
                    Text="{Binding Age}"
                    TextColor="{DynamicResource TextSecondaryColor}" />
            </StackLayout>
        </DataTemplate>
    </CollectionView.ItemTemplate>
</CollectionView>
        </Grid>
c# xaml maui
1个回答
0
投票

使用 Bindable stacklayout 解决了这个问题

<StackLayout Grid.Row="2" BindableLayout.ItemsSource="{Binding Sudents}">

    <BindableLayout.ItemTemplate>
        <DataTemplate x:DataType="models:Student">
            <Label
                FontSize="Caption"
                Text="{Binding Name}"
                TextColor="{DynamicResource TextSecondaryColor}" />

        </DataTemplate>
    </BindableLayout.ItemTemplate>
</StackLayout>
© www.soinside.com 2019 - 2024. All rights reserved.