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] Comment gérer plusieur ObservableCollection ayant le même objet?


Sujet :

Windows Presentation Foundation

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Par défaut [WPF] Comment gérer plusieur ObservableCollection ayant le même objet?
    Bonjour à tous,

    J'ai un petit souci de mise à jour de mes éléments.
    J'ai un UserControl dans lequel j'ai plusieurs GridView bindées chacune sur une ObservableCollection différente. Ces ObservableCollection ont le même type d'objet

    Par exemple: - Liste 1 : Tous les demande de support non résolu
    - Liste 2 : Les demandes de support me concernant.
    - Liste 3 : Une liste construite en fonction du formulaire de recherche.

    A l'initialisation, je construis mes listes avec autant de requête que de liste.
    Hors quand je viens mettre à jour un objet de la liste 1, si celui ci se trouve aussi dans la liste 2, il n'est pas mis à jour car WPF ne reconnait pas que c’est le même objet.
    Ceci est normal puisque je ne le construis pas dans la même méthode.

    Je ne peux pas récupérer tous les enregistrements et filtrer dessus car ils sont trop nombreux et je viderai la base de données.
    La solution que je vois est de ne faire qu'une seule requête (avec des union ???) et de construire mes différentes listes dans mon métier.
    Pensez vous que c’est une bonne solution solution?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Par défaut
    tu peux peut-être faire en sorte que les objets de tes collections soient les mêmes dès après le chargement ?

    Par exemple, tu peux passer par un dictionnaire pour faire ça efficacement Dictionary<objId, obj>

    Pour chaque objet récupéré de chaque liste :
    regarder s'il est dans le dico
    si oui : utiliser l'objet du dico à la place
    si non : utiliser l'objet récupéré et l'ajouter au dico

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Par défaut
    Etr niveau performance, ça ne risque pas de poser un problème de lenteur cette technique?

    En fait je vois 2 possibilités:
    1) Récupérer les n listes et les parcourir afin de remplacer les objets si ceux ci existent dans le dictionnaire.
    De cette façon, quand je modifirai un objet ça se répercutera partout.

    2) Avoir mes n listes et à chaque modifications d'un objet, vérifier s'il existe dans une liste.

  4. #4
    Membre éprouvé
    Inscrit en
    Juin 2008
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 162
    Par défaut
    Salut
    Fais la requette juste pour la première liste. Ensuite utilise Linq sur la collection de la 1ère liste pour construire les 2 autres collections.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Par défaut
    Le problème c'est que ma 1ere liste ne contient pas forcément tous les résultats.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Par défaut
    Citation Envoyé par takinelinfo Voir le message
    Etr niveau performance, ça ne risque pas de poser un problème de lenteur cette technique?

    En fait je vois 2 possibilités:
    1) Récupérer les n listes et les parcourir afin de remplacer les objets si ceux ci existent dans le dictionnaire.
    De cette façon, quand je modifirai un objet ça se répercutera partout.

    2) Avoir mes n listes et à chaque modifications d'un objet, vérifier s'il existe dans une liste.
    Pas de problème côté perf avec un Dictionary (ordre de grandeur : 1 million d'accès par seconde). Donc pour des listes à afficher sur un écran, ça passera de manière transparente et sans soucis.

Discussions similaires

  1. Comment gérer plusieurs sites sur un même hébergement ?
    Par Gaara-Manga dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 12/11/2009, 18h36
  2. [XSD] Comment gérer plusieurs éléments du même nom ?
    Par AnnSo1109 dans le forum Valider
    Réponses: 3
    Dernier message: 28/10/2009, 16h01
  3. Comment fusionner plusieurs callback pour un même objet graphique
    Par biquet dans le forum Interfaces Graphiques
    Réponses: 8
    Dernier message: 19/04/2007, 10h39
  4. Comment gérer plusieurs langues ?
    Par InterSQL dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 27/02/2004, 16h12
  5. Comment gérer plusieurs icones dans son exécutable ?
    Par declencher dans le forum Langage
    Réponses: 5
    Dernier message: 15/10/2003, 10h49

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