Je ne sais pas si c'est lié, mais j'ai eu un problème similaire avec le DataGrid dans lequel il a fallu littéralement secondes pour actualiser après un redimensionnement de fenêtre, tri de colonne, etc et verrouillé l'interface utilisateur de la fenêtre (1000 rangées, 5 colonnes).
Il s'agissait d'un problème (bug?) Avec les calculs de dimensionnement WPF. Je l'avais dans une grille avec le RowDefinition Height = "Auto" qui provoquait le système de rendu pour essayer de recalculer la taille du DataGrid à l'exécution en mesurant la taille de chaque colonne et rangée, vraisemblablement en remplissant la grille entière (si je comprends bien). Il est censé gérer cela intelligemment, mais dans le cas présent, ce n'était pas le cas.
Une vérification rapide pour voir s'il s'agit d'un problème lié consiste à définir les propriétés Height et Width du DataGrid sur une taille fixe pendant la durée du test, puis à réexécuter. Si votre performance est rétablie, une solution permanente peut être parmi ces options:
- Modifier la taille des éléments contenant à être relative (*) ou valeurs fixes
- Set MaxHeight et MaxWidth du DataGrid à un valeur fixe plus qu'elle pourrait obtenir en utilisation normale
- un autre type de conteneur avec une stratégie différente de redimensionnement (Grille, DockPanel, etc.)
+1. J'ai contourné ce problème en utilisant deux grilles dans un style maître/détail. Réduction de l'utilisation de la mémoire d'environ 3 Go à quelque chose de beaucoup plus raisonnable! – RichardOD