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 :

[WPF] ObservableCollection trop grande ?


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Par défaut [WPF] ObservableCollection trop grande ?
    Bonjour a tous,

    Je suis sur un probleme assez inhabituel. En effet, j'ai une liste qui contient environ 7500 entrées et lorsque j'essaye de la parcourir afin de rechercher un élément précis, j'ai l'impression que la boucle saute !

    J'ai beau mettre des breakpoints juste apres et faire des choses, il n'y va même pas, pourtant mon programme s'exécute correctement, mais sans la fameuse donnée...

    Pour la boucle, rien de plus simple :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ObservableCollection<Item> X = getObservableCollectionqqpart(); //exemple pour recuperer ma collection.
    X.Count() // me retourne environ 7500 entrées qui correspondent, en regardant une partie, a ma collection d'origine.
     
    foreach (Item U in X)
    {
         if (U.AttributeDeTest.Contains("blabla"))  //AttributeDeTest est environ la 7000eme entrée dans la liste.
         { // un breakpoint ici
         }
    }

    Au breakpoint, ca ne break pas, je sais pas si je me suis fait comprendre, le probleme est tellement bizarre que je n'arrive pas a comprendre ou ca peut clocher...

    Merci d'avance 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 : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Heu là, je ne vois pas. Tu n'aurais pas un projet d'exemple pour reproduire le pb ?

  3. #3
    Membre chevronné Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Par défaut
    Salut,
    le code où est situé la boucle serait-il appelé par l'interface graphique au moment d'un databinding, d'une validation ou un truc de ce goût-là ?
    Personnellement ça m'est déjà arrivé de galérer pendant des plombes parce que le débugger ne s'arrêtait pas à l'intérieur de méthodes appelées par le moteur de WPF. Du genre il pourrait y avoir une exception levée, mais "étouffée" et qui ne remonterait pas ?
    Essaie de voir avec les classes Debug et Trace de System.Diagnstics pour affficher une valeur au pasage dans la boucle, où à la barbare tu mets un try/catch et dans le catch tu écris un fichier texte sur ton bureau, par ex.

    Ou encore plus simplement, es-tu sûr que ta méthode est appelée ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Par défaut
    Merci pour vos reponses,

    Thomas, en ce qui concerne l'erreure, je n'arrive pas a la reproduire ailleurs, et je deviens dingue ! J'avoue que sur un programme simple, il n'a pas besoin d'autant de temps a ce lancer que le miens.

    MetalGeek, je suis certain que ca vient pas de mon affichange graphique ou je fais des bindings de valeurs dessus car :

    Code c# : 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
            public string ItemID { get; set; }
            public string ItemMaj { get; set; }
            public string ItemPrice { get; set; }
     
            public SellItem(XElement Data, ObservableCollection<Item> T)
            {
                ItemID = Data.Attribute("Item_ID").Value;
                ItemMaj = Data.Attribute("Maj").Value;
                ItemPrice = T[4538].Price;
    /*            foreach (Item I in T)
                {
                    if (I.IDName.Contains(ItemID))
                        ItemPrice = I.Price;
                }
    */
            }

    Si je le met en dur avec une valeur d'insertion que je choisis moi même, ca marche. Par contre, en dessous ca ne marche pas ! Pourtant, les ItemID existent TOUS dans la collection T !

    C'est a devenir dingue ! Je comprends pas ...

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    fais le test avec un for(int i .....
    j'ai deja rencontre un probleme avec les foreach

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Par défaut
    Déjà essayé, même avec un IEnumerable, la totale, rien a faire, je me suis résigné a revoir complètement mes collections en les découpant en petit et les ajoutant tous dans un dico

Discussions similaires

  1. [CSS]Probleme de contenu trop grand et de pied de page
    Par Drannor dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 30/05/2005, 23h59
  2. Taille d'archive trop grande
    Par mick84m dans le forum Shell et commandes GNU
    Réponses: 14
    Dernier message: 12/05/2005, 16h39
  3. tableau trop grand ?
    Par Praxe dans le forum C++
    Réponses: 17
    Dernier message: 17/03/2005, 14h14
  4. modélisation d'une base : table trop grande
    Par Shabata dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 22/11/2004, 11h44
  5. Surface trop grande
    Par Black_Daimond dans le forum DirectX
    Réponses: 1
    Dernier message: 18/01/2003, 03h02

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