WPF ListView Performance très lente - Pourquoi? (ElementHost, ou autre raison?)


Answers

Vous pouvez également vérifier cet excellent article sur le projet de code:

WPF: Virtualisation de données par Paul McClean http://www.codeproject.com/KB/WPF/WpfDataVirtualization.aspx

Il vous montre une approche beaucoup mieux à la mémoire minimale et l'utilisation de la bande passante.

Question

J'ai une application Windows Forms, qui a un ElementHost unique contenant un UserControl WPF ... dans mon WPF, j'ai un ListView TRES simple:

<ListView Margin="4" ItemsSource="{Binding Notifications}">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="FirstName" DisplayMemberBinding="{Binding FirstName}" />
            <GridViewColumn Header="LastName" DisplayMemberBinding="{Binding LastName}" />
            <GridViewColumn Header="Address" DisplayMemberBinding="{Binding Address}" />
            <GridViewColumn Header="City" DisplayMemberBinding="{Binding City}" />
            <GridViewColumn Header="State" DisplayMemberBinding="{Binding State}" />
            <GridViewColumn Header="Zip" DisplayMemberBinding="{Binding Zip}" />
        </GridView>
    </ListView.View>
</ListView>

Si ma source contient 10 éléments, le formulaire se charge en moins d'une seconde. Si ma source contient 1000 objets, cela prend 7 secondes !!! Mon minuteur prend UNIQUEMENT en compte le chargement (pas combien de temps il faut pour obtenir les articles).

Donc ma question est:

L'utilisation d'un ElementHost est-elle un cauchemar de performance?

WPF DataBinding est-il un cauchemar de performance?

Est-ce que ListView est une merde? (btw, mêmes résultats avec le DataGrid de WPFToolkit)?