Когда я прокручиваю вниз коллекционное представление в Xamarin.Forms ContentPage, некоторые данные исчезают - PullRequest
0 голосов
/ 28 октября 2019

У меня есть эта проблема. При прокрутке вниз в CollectionView с источником элементов, связанным с моделью представления, через некоторое время исчезает только определенный текст, связанный с первым элементом в коллекции. Я попытался установить «инкриминированный» текст статическим, как Text = «lorem ipsum», и он не исчезает. Поэтому я думаю, что это должно быть что-то вроде «кэширования привязки данных», которое может вызвать проблему.

Вот код представления коллекции

<CollectionView  
   x:Name="lvBestPlates"
   ItemsSource="{Binding PlatesList}"  
   VerticalOptions="FillAndExpand" 
   HorizontalOptions="FillAndExpand" 
   EmptyView="no items"  
   Margin="0">
   <CollectionView.ItemsLayout>
     <GridItemsLayout Orientation="Vertical"/>
   </CollectionView.ItemsLayout>
   <CollectionView.ItemTemplate>
     <DataTemplate>
       <StackLayout Margin="{StaticResource DefaultBottomMargin}">
          <Frame CornerRadius="20" Padding="0" IsClippedToBounds="True"
             HorizontalOptions="FillAndExpand" VerticalOptions="Start">
             <StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="Start">
               <ffimg:CachedImage
               Source="{Binding Image}"
               HorizontalOptions="FillAndExpand"
               VerticalOptions="FillAndExpand"  
               Aspect="AspectFill"
               HeightRequest="150"
               RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width}" />
               <StackLayout Orientation="Vertical" VerticalOptions="Start">
                   <StackLayout Orientation="Horizontal" Padding="15">
                      <Label Text="{Binding Name}" HorizontalOptions="StartAndExpand"
                        VerticalOptions="Center" Style="{StaticResource TitleLabel}" 
                        TextColor="{StaticResource DarkTextColor}"></Label>
                   </StackLayout>
                   <StackLayout Padding="15" Margin="0,-15,0,0">
                       <Label
                           Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
                           LineHeight="1.2"
                           FontSize="14"
                           Style="{StaticResource SmallLabelSemibold}"/>                       
                   </StackLayout>
               </StackLayout>

               <StackLayout.GestureRecognizers>
                   <TapGestureRecognizer Command="{Binding OnPlateTapped}" 
                     CommandParameter="{Binding PlateId}"></TapGestureRecognizer>
               </StackLayout.GestureRecognizers>
             </StackLayout>
          </Frame>
       </StackLayout>
     </DataTemplate>
   </CollectionView.ItemTemplate>
   <CollectionView.EmptyViewTemplate>
       <DataTemplate>
           <Label Text="no items" Margin="{StaticResource SmallTopMargin}" 
             HorizontalOptions="CenterAndExpand" HorizontalTextAlignment="Center"></Label>
       </DataTemplate>
   </CollectionView.EmptyViewTemplate>
</CollectionView>
...