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 :

[Binding] Une source, plusieurs controles


Sujet :

Windows Presentation Foundation

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 18
    Points : 13
    Points
    13
    Par défaut [Binding] Une source, plusieurs controles
    Bonjour à tous, j'ai un problème de binding.

    J'expose le problème :
    - J'ai une observable collection que je charge au lancement de l'application.
    - Cette collection est modifiable par l'utilisateur, en ajout suppression et modification des éléments.
    - Dans cette partie du programme j'utilise une CollectionView pour me déplacer et faire des filtres.
    - Je crée la collectionView comme ça :
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    MyCollectionView = CType(CollectionViewSource.GetDefaultView(Me.DataContext), CollectionView)
    - Ensuite en divers lieu du programme cette collection (et pas la vue) me sert a binder, par exemple les items de combobox.
    - Le problème est le suivant, si j'utilise le filtre dans la partie édition, les items de mes combobox sont filtrés aussi.
    Et je ne le veux pas.

    Pourtant je binde la collection et pas la vue.

  2. #2
    Membre éprouvé Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Points : 998
    Points
    998
    Par défaut
    Hello,

    Effectivement, c'est toujours la vue par défaut qui est réutilisé en WPF sauf si tu en spécifies une explicitement. C'est donc ta vue filtrée qui est utilisée dans les vues.

    Ce que tu peux faire c'est redéclarer une CollectionViewSource en resource (que tu bindera sur l'observableCollection) et c'est sur cette CollectionViewSource que tu binderas le contrôle.

    Exemple:
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      <Window.Resources>
            <CollectionViewSource  x:Key="cvs1"
                           Source="{Binding tonObservableCollectionPath}"/>
      </Window.Resources>
        <ListBox ItemsSource="{Binding Source={StaticResource cvs1}}" />

    Bon courage,

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Merci.

    J'ai eu du mal à trouver la méthode pour binder la collectionviewsource par le code, mais c'est bon ça fonctionne nikel !

    Je mets le code au cas au

    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Cvs1 As CollectionViewSource = CType(Me.FindResource("cvs1"), CollectionViewSource)
                    Cvs1.Source = MyTransporteur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Une source plusieurs tableaux
    Par topolino dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/12/2014, 16h14
  2. Syntaxe d'une source controle d'un champ
    Par docjo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 27/01/2008, 21h11
  3. Réponses: 2
    Dernier message: 03/05/2006, 15h33
  4. Réponses: 9
    Dernier message: 28/10/2005, 13h48

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