Xamarin形成图像库虚拟化问题

问题描述

我正在尝试创建一个分组的图片库:

<ContentPage>
    <ContentPage.Resources>
        <ResourceDictionary>
            <Style x:Key="imageStyle" targettype="View">
                <Setter Property="WidthRequest" Value="120" />
                <Setter Property="HeightRequest" Value="120" />
                <Setter Property="Margin" Value="5" />
            </Style>
        </ResourceDictionary>
    </ContentPage.Resources>
    <CollectionView IsGrouped="true" ItemsSource="{Binding Images}">
        <CollectionView.GroupHeaderTemplate>
            <DataTemplate>
                <Label FontAttributes="Bold" FontSize="Large" Text="{Binding Name}" />
            </DataTemplate>
        </CollectionView.GroupHeaderTemplate>
        <CollectionView.ItemTemplate>
            <DataTemplate>
                <FlexLayout Padding="5" BindableLayout.ItemsSource="{Binding Images}" Wrap="Wrap">
                    <BindableLayout.ItemTemplate>
                        <DataTemplate>
                            <Image Source="{Binding Location}" Style="{StaticResource imageStyle}" />
                        </DataTemplate>
                    </BindableLayout.ItemTemplate>
                </FlexLayout>
            </DataTemplate>
        </CollectionView.ItemTemplate>
        <CollectionView.GroupFooterTemplate>
            <DataTemplate>
                <Label Margin="0,10" Text="{Binding ImagesCount,StringFormat='Total Photos: {0:D}'}" />
            </DataTemplate>
        </CollectionView.GroupFooterTemplate>
    </CollectionView>
</ContentPage>

问题是,当我向上/向下滚动时,会出现以下奇怪行为:

Screenshot

有时,根据滚动行为,组无法绑定。 我根据官方文档在BindableLayout中找到了它:

可绑定布局仅应在要显示的项目集合很小且不需要滚动和选择时使用。虽然可以通过将可绑定的布局包装在ScrollView中来提供滚动,但不建议这样做,因为可绑定的布局缺乏UI虚拟化

所以也许问题出在UI虚拟化中,我认为我应该对FlexLayout的绑定上下文更改做出响应,但是我如何处理ItemTemplate内部的绑定更改

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)