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 :

Remplir un combobox depuis XML


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2002
    Messages : 177
    Par défaut Remplir un combobox depuis XML
    Bonjour,

    Je désire remplir un Combobox avec en ItemSelected une valeur provenant d'un XML et pour les ItemsSource, les infos provenant de je ne sais pas ou !!(code procédural par exemple)

    J'ai comme source mon fichier XML que je bind avec un XMLDataProvider en XAML et code behind. J'affiche mes éléments de mon XML dans une listView.

    Par contre, j'ai une ComboBox dans ma listView et je ne sais pas trop comment m'y prendre pour pouvoir afficher les ItemsSource.

    1. Dans mon fichier XML, j'ai 1 attribut <mon_contenu>F</mon_contenu> qui ne contient qu'un char.

    2. J'ai plusieurs valeurs possibles pour ma Combo ex. F, B, C, D

    3. J'arrive bien entendu à Binder ma combobox sur mon fichier XML et affiché la bonne valeur. Grâce à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <ComboBox SelectedIndex="0"  SelectedIndex="{Binding XPath=mon_contenu_du_XML}">

    4. maintenant, et c'est là que ca se corse. Je dois (selon moi) créer une ObservableCollection et créer toutes mes valeurs possibles pour ma combo en code behind.

    J'arrive à faire cela et à les afficher dans ma Combo, mais par contre je n'arrive plus dans le même temps, à reprendre ma valeur de mon XML (donc la vraie valeur du row)

    En résumé, mon problème est le suivant : est-il possible d'afficher dans le combo un ItemSelected provenant d'une certaine source (XMLDataProvider) puis les ItemsSource depuis une autre source (ObjectDataProvider) ???

    J'espère m'être bien fait comprendre .

    Voici une partie de mon code pour mieux me faire saisir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      ObjectDataProvider odp = new ObjectDataProvider();
     
            private ObservableCollection<string> libelleProduit = null;
     
            public ObservableCollection<string> LibelleProduit
            {
                get { return libelleProduit; }
                set { libelleProduit = value; }
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      libelleProduit = new ObservableCollection<string>();
                libelleProduit.Add("produit1");
                libelleProduit.Add("peroeji2");
    odp = (ObjectDataProvider)this.FindResource("odpProduit");
                if (odp != null)
                {
                    odp.ObjectInstance = LibelleProduit;
                }

    XAML : Resources
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Window.Resources>
            <!--put in Resources-->
            <XmlDataProvider x:Key="myDataXML" XPath="cycling/track"/>
     
            <ObjectDataProvider x:Key="odpProduit"/>
     
        </Window.Resources>
    XML : déclaration listView
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       <ListView x:Name="listView" ItemsSource='{Binding Source={StaticResource myDataXML}}'



    ComboBox: (ne marche pas mais syntaxe selon mon idée d'avoir 2 sources différentes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SelectedItem="{Binding Source={StaticResource myDataXML XPath=type, Mode=TwoWay}"
                                                    ItemsSource="{Binding Source={StaticResource odpProduit}}"
    Merci d'avance pour vos infos

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2002
    Messages : 177
    Par défaut
    Personne ??

    En résumé, ce que j'essaye de faire c'est :


    afficher dans ma comboBox une liste d'éléments (déclarés je ne sais pas où!!!) et sélectionné par défaut un élément provenant d'un fichier XML

    Merci d'avance

Discussions similaires

  1. Remplir une ComboBox depuis Sql Server
    Par Jinkas dans le forum Windows Forms
    Réponses: 30
    Dernier message: 20/06/2013, 13h01
  2. Remplir un Combobox à partir d'un flux XML
    Par tchip dans le forum Développement Web en Java
    Réponses: 13
    Dernier message: 29/02/2012, 17h52
  3. remplir une combobox depuis un recordset
    Par Zorgloub dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/02/2008, 16h12
  4. Remplir un combobox depuis un fichier texte
    Par Jiyuu dans le forum VB.NET
    Réponses: 2
    Dernier message: 18/06/2007, 22h34
  5. [C#] Remplire un comboBox avec un fichier XML
    Par Roach dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/09/2005, 20h45

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