Hello,

Dans le cadre d'un projet, je dois utiliser un panneau qui permet la virtualisation des objets dans une listview.
Comme je dois avoir plusieurs lignes et colonnes, je ne peux pas utiliser le VirtualizingStackPanel et donc j'ai décidé de faire ma propre implémentation d'un panneau dérivant de VirtualizingPanel et de IScrollInfo.
J'ai donc suivit le tutoriel de Dan Crevier (http://blogs.msdn.com/dancre/archive...l/default.aspx), puis je l'ai un peu adapté à mes besoins (très peu en fait... )

Le problème, c'est que lorsque je tente de naviguer dans ma liste avec le clavier (touches fléchées), je suis limité aux objets visible... A aucun moment je ne peux aller sur un objet qui se trouve en dessous du viewport...
Exemple :
J'ai 20 objets et ma fenêtre me permet d'en voir 15 à la fois (3 lignes de 5 objets chacunes). Tant que je navigue dans les 15 objets visibles, aucun problème. Par contre si je veux atteindre les 5 derniers qui se trouve donc sur la quatrième ligne qui est invisible... Impossible de les atteindre.

Je ne comprends vraiment pas pourquoi. Je n'ai même pas d'appel sur mon panneau...
J'ai tenté de voir ce qui se passait avec le logiciel snoop (http://blois.us/Snoop/) mais tout ce que j'ai vu c'est que l'événement KeyDown est attrapé par la listview uniquement lors d'un déplacement dans les objets visibles. Si on tente d'accéder à un objet caché, rien n'est attrapé...
J'ai aussi utilisé Reflector pour aller voir ce qui se passait dans le keydown du listview mais j'ai du mal à suivre...

Bref je suis un peu perdu et je me demandais si l'un de vous avait déjà rencontré un problème similaire ou simplement une idée à tester pour résoudre ce bug.

J'ai mis une solution VS2008 C# représentant le problème dans un zip que vous pouvez télécharger à cette adresse : http://membres.lycos.fr/thorindustry...ePanelTest.zip

Merci pour m'avoir lu jusque là...

Meilleurs Salutations

P.S. J'ai trouvé un post sur MSDN qui en parle et j'ai tenté de relancer la discussion : http://social.msdn.microsoft.com/For...e-4e048c5b293c
P.S. (2) l'exemple de Dan Crevier possède le même problème, ce n'est donc pas une différence entre nos deux codes... malheureusement