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

Silverlight Discussion :

Filtre PagedCollectionView selon ID


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut Filtre PagedCollectionView selon ID
    Bonjour,
    Je dispose d'une PagedCollectionView et j'aimerai lui appliquer un filtre de tel sorte quelle me renvoie uniquement les elements dont un champ spécifique est different.

    Par exemple une liste
    <1,2,3,1,4,1>
    me renverrai:
    <1,2,3,4>

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Avec la propriété Filter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    List<int> distinct = new List<int>();
    collectionView.Filter = f =>
    {
       int i = (int)f;
       var result = distinct.Contains(i) == false;
       if(result) distinct.Add(i);
       return result;
    };
    Pas teste mais ca devrait etre bon.

  3. #3
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut
    Je peux te demander comment fais tu pour maitriser aussi bien les fonctions associés aux types de données.
    Existe t'il des tutos ou bien ca vient avec l'experience?
    J'ai du mal a comprendre les quelques lignes de codes que tu m'as écrit....

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par IsraGab Voir le message
    Je peux te demander comment fais tu pour maitriser aussi bien les fonctions associés aux types de données.
    Existe t'il des tutos ou bien ca vient avec l'experience?
    J'ai du mal a comprendre les quelques lignes de codes que tu m'as écrit....
    Ca vient avec l'experience.

    En fait la propriete Filter est de type Predicate<T> c'est a dire qu'elle prends en parametre un type T et doit retourner un bool (equivalent a Func<bool, T> donc).

    Ce predicat sera appele pour chacun des elements de ta PagedCollectionView lorsque tu appelera la methode Refresh (il me semble).

    Le code en lui meme c'est pas tres complique.
    En gros ca donne :
    Pour chaque element de ta source, je regarde si il est deja passe, si non alors je retourne true (pour dire que cet objet satisfait au filtre et qu'il doit donc etre present) et je l'ajoute dans une liste pour dire que cet objet vient de passe. Si non alors je retourne false pour dire que l'objet ne satisfait pas le filtre.

    Avec ton exemple
    1 est-il present dans la liste "distinct" ? Non
    Je l'ajoute
    Je retourne true
    Pareil pour 2 et 3
    Ensuite le 1 revient
    Est-ce qu'il est present dans la liste "distinct" ? Oui
    Je retourne false.

  5. #5
    Membre actif Avatar de freezer08
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 59
    Par défaut
    Je confirme qu'il faut appeler la méthode PageCollectionView.Refresh() pour passer par la méthode de filtre. Autrement, Skyounet a tout dit, rien à rajouter

    Juste une question : ce traitement doit-il s'opérer qu'une seule fois ? Et est-ce que tu utilises la PagedCollectionView pour dédoublonner uniquement ?

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par freezer08 Voir le message
    Juste une question : ce traitement doit-il s'opérer qu'une seule fois ?
    Tu dois rappeler Refresh si tu rajoutes des items dans ta collection par exemple.

    Et est-ce que tu utilises la PagedCollectionView pour dédoublonner uniquement ?
    Non on l'utilise pour plein d'autres choses. Par exemple pour créer un système de filtre sur un collection.

Discussions similaires

  1. [XL-2007] Filtre avancé selon un critère situé dans une cellule
    Par DiesIrae dans le forum Excel
    Réponses: 12
    Dernier message: 27/07/2009, 15h45
  2. Filtre automatique selon couleurs des cellules
    Par stryker973 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 21/03/2008, 12h29
  3. [XSLT] Création d'un filtre selon la valeur d'un attribut
    Par lemok dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 07/05/2007, 17h13
  4. Requete : filtre selon format des données
    Par bogros dans le forum Access
    Réponses: 2
    Dernier message: 23/05/2006, 11h28
  5. Filtre d'affichage de balise selon leur attributs
    Par Norely dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 03/04/2003, 14h33

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