IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Listview Item non visible via méthode ContainerFromItem


Sujet :

Windows Presentation Foundation

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 192
    Points : 86
    Points
    86
    Par défaut Listview Item non visible via méthode ContainerFromItem
    Bonjour, j'ai une listview et chaque item possède une checkbox. J'ai placé une checkbox "select all".
    lorsque je selectionne "select all" ceci appelle la fonction suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
                     private void SetLvSelectAll(ListView lv,bool IsCheckAll)
            {
                for (int i = 0; i < lv.Items.Count; i++)
                {
                    //Create the object container (Listview).
                    ListViewItem lvItem = (ListViewItem)lv.ItemContainerGenerator.ContainerFromItem(lv.Items[i]);
                    if (!(lvItem == null))
                    {
                        //Retreive the checkBox for this ListviewItem
                        CheckBox cb = FindVisualChild<CheckBox>(lvItem) as CheckBox;
                        cb.IsChecked = IsCheckAll;
                    }
                }
     
            }
    Mais seule les item qui se trouve dans " la page visible " sont sélectionné. Lorsque je fait défilé le scrolldown, les autres items ne le sont pas.
    Et pour ces objets j'ai bien "lvItem" qui vaut null .
    Je suppose que ces items ne sont pas crées dans la listview tant que je ne les aient pas au moins affiché une fois via le scrolldown.
    Une idée pour que tout soit séléctionné ?
    Merci pour votre aide

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par richton95 Voir le message
    Je suppose que ces items ne sont pas crées dans la listview tant que je ne les aient pas au moins affiché une fois via le scrolldown.
    En effet, c'est du à la virtualisation. Maintenant, pour le régler, j'ai pas trop d'idée dans l'immédiat...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 192
    Points : 86
    Points
    86
    Par défaut
    Bien peut-être en trichant un peu et faire un scrolldown de la listview au chargement mais peut-être que ca a rien a voir) ?
    J'ai éssayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l_lvToFill.ScrollIntoView(l_lvToFill)
    mais ca ne marche pas

  4. #4
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Et en mettant la propriété suivante sur ta ListView :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <ListView VirtualizingStackPanel.IsVirtualizing="False" ... />

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par binoo Voir le message
    Et en mettant la propriété suivante sur ta ListView :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <ListView VirtualizingStackPanel.IsVirtualizing="False" ... />
    Ok mais dans ce cas, il ne profite plus de la fonctionnalité donc risque de pb de performances...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 192
    Points : 86
    Points
    86
    Par défaut
    Cool ca fonctionne. Merci

    Ce n'est pas une appli très gourmande donc la différence ne se voit pas. Mais bon si vous avez d'autres solutions je suis preneur.
    En tout cas merci

  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Points : 341
    Points
    341
    Par défaut
    D'une manière générale, je pense que tu devrai essayer de trouver une autre approche: WPF permet de faire abstraction pour ce genre d'opération des contrôles utilisés (ce n'est donc pas recommandé de chercher "à la main" les ListBoxItem puis de parcourir l'arbre visuel pour trouver les CheckBox).

    En utilisant le binding, tu devrais pouvoir réaliser cela beaucoup plus facilement

Discussions similaires

  1. [AC-2007] Code VBA : Méthode OpenReport et Access en non visible : ShowWindow
    Par thierrylosson dans le forum Access
    Réponses: 0
    Dernier message: 28/05/2015, 11h40
  2. Problème removeRange méthode non visible
    Par michelp3 dans le forum Langage
    Réponses: 7
    Dernier message: 31/01/2012, 13h12
  3. Réponses: 7
    Dernier message: 11/10/2011, 22h08
  4. Controles/header non visible en design d'une Listview
    Par Harpist dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 18/06/2008, 12h44
  5. Form principale non visible au demarrage!!!!
    Par toufou dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/07/2002, 22h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo