2010-03-16 7 views
0

J'ai un scénario de grille avec> 500,000,000 lignes que je voudrais afficher dans ListView.WinForms ListView dans VirtualMode est-il limité à 100 000 000 lignes?

Si je limite artificiellement mon ListView pour afficher 100000000:

_listView.VirtualListSize = _data.Count; 
if (_listView.VirtualListSize > 100000000) 
    _listView.VirtualListSize = 100000000; 

Tout fonctionne très bien (dans VirtualMode naturellement). Quand je change mon code pour:

_listView.VirtualListSize = _data.Count; 
if (_listView.VirtualListSize > 100000001) 
    _listView.VirtualListSize = 100000001; 

ListView afficher une grille vide ... Est-ce un bug Microsoft? D'où cela vient-il? Est-ce une limitation Win32 ListView? Plus important encore, pourquoi cela n'est-il pas documenté?

+0

Si vous affichez des enregistrements 50M à l'utilisateur, la dernière question que vous devriez vous poser est "comment puis-je afficher 100M?". GUI a besoin d'une re-conception, stat! – Juliet

+0

Ceci est dans VirtualMode. L'utilisateur a des tonnes de méthodes pour naviguer dans les données, qui ne sont pas aussi bête que le défilement un par un. Pourquoi VirtualMode doit-il être limité à moins de 64 bits? De plus, pourquoi cela n'est-il pas commenté? Et qui décide que 100 000 000 est OK, mais que 100 000 001 ne l'est pas? – damageboy

+0

@Juliet Regardez [Picasa] (http://picasa.google.com/). Il peut afficher quelques millions d'éléments (je n'ai que quelques millions d'images), et il est parfaitement navigable pour l'utilisateur. La réaction réflexe * plus de ** x ** éléments est trop * n'est tout simplement pas valide. –

Répondre

4

Cela ne peut pas être fait. Comme vous l'avez constaté, 100 000 000 est la limite absolue. MS ne l'a jamais documenté (AFAIK), mais la limite est connue depuis longtemps: an answer from 2004.

Sur les versions précédentes de Windows, en essayant plus de 100.000.000 OS :) écrasements l'

Sur mon XP et Vista machines, essayer plus de 100.000.000 lignes limite la taille de 9.999.999.

Questions connexes