J'ai un projet WPF avec un DataGrid
lié à une collection Observable. Cette collection est remplie à l'aide d'une méthode asynchrone. Lorsque j'appelle cette méthode asynchrone, une animation avec un anneau de progression est affichée à l'utilisateur. Pendant que la collection attend les données, tout fonctionne sans délais, mais lorsque le DataGrid
se remplit avec les éléments, l'animation de l'anneau de progression cesse de fonctionner pendant 1 seconde ou 2 jusqu'à ce que le DataGrid
charge tous les enregistrements (cette collection peut avoir 50 000 enregistrements ou plus). Je me demandais juste s'il existe un moyen de ne pas verrouiller l'animation lorsque le DataGrid
se remplit avec les informations retournées par la collection.L'interface utilisateur WPF se fige lors du remplissage de DataGrid
La configuration est: J'ai une fenêtre principale avec un contrôle utilisateur caché qui affiche/cache l'animation en utilisant une propriété nommée IsLoading. Lorsque ce contrôle utilisateur est visible, il verrouille tous les objets utilisateur derrière lui.
Le code est
<Grid>
<local:LoadingOverlayView
DataContext="{Binding Assets}"
d:IsHidden ="True"
Visibility="{Binding IsLoading,
Converter={StaticResource BoolToVisibilityConverter},
UpdateSourceTrigger=PropertyChanged}"/>
</Grid>
Avez-vous essayé d'utiliser un autre fil pour votre animation? – Master117
Pouvez-vous donner un exemple de comment faire cela? –
Vous devez utiliser [BackGroundWorker] (https://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx), également parcourir cette section [Comment utiliser WPF Background Worker] (http://stackoverflow.com/questions/5483565/how-to-use-wpf-background-worker) –