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 :

Copier une ComboBox dans une autre


Sujet :

Windows Presentation Foundation

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 105
    Points : 58
    Points
    58
    Par défaut Copier une ComboBox dans une autre
    Bonjour,
    Comme dit dans le titre je voudrais copier les éléments de la combobox 1 dans la 2 à l'initialisations. MAsi après je veux que ça soit 2 combobox qui marchent indépendamment (mais avec le même contenu qui ne change jamais). C'est possible ? Comment ?
    Voici ce que j'ai fait de mieux mais ça ne marche qu'un coup et les 2 sont synchronisées (si je change la 2 ça change la 1).
    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    <ComboBox x:Name="ComboBox2" ItemsSource="{Binding ElementName=ComboBox1, Path=Items, Mode=OneWay}" >

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    les controls ayant un itemssource se basent sur une collectionview
    si on leur donne autre chose qu'une collectionview (c'est souvent le cas) ils se base alors sur une instance par défaut de collectionview liée à la collection fournie (collectionviewsource.getdefaultview(coll))

    collectionview gère le currentitem, ce qui explique que 2 bindings vers une même collection sont synchronisés

    pour ca plusieurs moyens de s'en sortir, mais dans ton cas le plus simple devrait être de rajouter IsSynchronizedWithCurrentItem=False sur chaque
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 105
    Points : 58
    Points
    58
    Par défaut
    Merci mais ça ne marche pas. Voici mon code parce que sans le vouloir je n'ai peut-être pas tout dit.

    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <StackPanel>
             <Label Content="CB Test 1 :"/>
             <ComboBox x:Name="ComboBox1" IsSynchronizedWithCurrentItem="False">
                         <ComboBoxItem Content="Item 1" IsSelected="True"/>
                         <ComboBoxItem Content="Item 2"/>
                         <ComboBoxItem Content="Item 3"/>
             </ComboBox >
    </StackPanel>
    <StackPanel Grid.Column="1">
             <Label Content="CB Test 2 :"/>
             <ComboBox x:Name="ComboBox2" ItemsSource="{Binding ElementName=ComboBox1, Path=Items}" IsSynchronizedWithCurrentItem="False" >
             </ComboBox>
    </StackPanel>

    Et ce qui est bizarre c'est que au démarrage :
    • si j'ouvre la CB2 la 1 est synchronisée puis si j'ouvre la 1 la 2 se vide mais la 1 continue de marcher.
    • si j'ouvre la CB1 la 2 est synchronisée puis si j'ouvre la 2 la 1 se vide mais la 2 continue de marcher.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Il vaut mieux avoir la liste sur le viewmodel, dans une propriété et avoir un autre propriété pour l'autre combobox qui fait juste return la 1ere propriété.ToList()
    (tolist faisant une copie de la collection ça ne posera pas de problème)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 105
    Points : 58
    Points
    58
    Par défaut
    Ok merci je vais faire ça.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/01/2013, 10h42
  2. rechercher une date et copier la colonne dans un autre onglet
    Par jd69001 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/02/2012, 20h09
  3. rechercher une date et copier la ligne dans un autre onglet
    Par ptitloup57 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/02/2009, 13h34
  4. Réponses: 17
    Dernier message: 08/10/2007, 22h37

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