J'ai un problème avec la virtualisation de l'interface utilisateur d'un ListView avec des centaines d'éléments dont les éléments peuvent exposer une propriété de visibilité. Malheureusement la virtualisation ne reconnaît pas la visibilité correcte et rend la barre de défilement plus petite ou plus grande en fonction du nombre d'éléments dans le ViewPort (et non du nombre d'éléments qui ne sont pas repliés dans le ViewPort) à la position défilée.ListView, ListViewItems et Virtualization
Est-il possible d'éviter ce problème sans désactiver la virtualisation?
S'il vous plaît voir exemple ci-joint:
<ListView VerticalAlignment="Stretch"
Name="ListViewControl"
HorizontalAlignment="Stretch"
ItemsSource="{Binding Movies}"
ScrollViewer.VerticalScrollBarVisibility="Visible"
SelectedItem="{Binding MovieSelected, Mode=OneWayToSource}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<EventSetter Event="MouseDoubleClick" Handler="ItemClicked" />
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="Visibility" Value="{Binding Visibility}"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch">
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>