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 :

Afficher / modifier une liste de chaines de caractères


Sujet :

Windows Presentation Foundation

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 73
    Points
    73
    Par défaut Afficher / modifier une liste de chaines de caractères
    Salut à tous !

    J'ai un objet contenant une liste de chaines (List<string>) que je veux afficher dans une ListBox.

    Pour ça, tout va bien :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                    <ListBox ItemsSource="{Binding FileFormats}" >
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding}" />
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>
    Ma liste est bien affichée, seulement je voudrais pouvoir modifier ces chaines. Du coup je met des TextBox à la place du TextBlock et paf ! Quand j'affiche mon composant...
    Citation Envoyé par Erreur
    La liaison bidirectionnelle nécessite Path ou XPath.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 208
    Points : 136
    Points
    136
    Par défaut
    As tu essayer de mettre Path=""?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 73
    Points
    73
    Par défaut
    Même problème
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <TextBox Text="{Binding Path=''}" />

  4. #4
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Salut,

    Ce code suffit pas, il faut vraiment préciser le path. Là tu n'as rien préciser pour la valeur du Path.
    Deux façons équivalentes de le faire :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <TextBox Text="{Binding Path=.}" />
    ou
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <TextBox Text="{Binding .}" />

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 73
    Points
    73
    Par défaut
    Ah effectivement ça fonctionne comme cela, mais mes valeurs ne sont pas enregistrées si je fais des modifications. J'ai essayé en utilisant une ObservableCollection<string> mais ça ne marche pas non plus. Il doit me manquer un truc tout con...

  6. #6
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Je pense qu'il faut que tu te fasses un objet "Valeur" implémentant INotifyPropertyChanged avec une propriété "Val" de type string. Et ensuite, au lieu de passer une List<string> à ta ListBox, tu passes une List<Valeur>.
    Je ne vois pas trop de solution avec une List<string> sans perdre l'intérêt du binding.

    Du coup côté xaml, tu auras :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <TextBox Text="{Binding Path=Val}" />

    Sinon l'idée de prendre une ObservableCollection plutôt qu'une List peut quand même être une bonne piste si jamais tu ajoutes ou supprime des éléments à ta liste FileFormats.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 73
    Points
    73
    Par défaut
    Ben je voulais éviter de devoir faire ça parce que je stocke en XML derrière, donc je dois gérer une liste d'objets XML et tout un patacaisse mais je crois que je n'ai pas trop le choix ^^

    Merci de t'être penché sur mon problème

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

Discussions similaires

  1. Modifier la valeur affichée d'une liste déroulante
    Par Neewd dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 31/01/2012, 12h15
  2. Réponses: 0
    Dernier message: 30/03/2011, 15h11
  3. transformer une liste en chaine de caractères
    Par fboss dans le forum Général Python
    Réponses: 8
    Dernier message: 24/11/2009, 19h07
  4. [Listes ou Chaines de caractères] Une idée..
    Par KiLVaiDeN dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 25/04/2006, 11h54
  5. [Struts]Affiche d'une liste sur plusieurs pages
    Par guillaume_85 dans le forum Struts 1
    Réponses: 3
    Dernier message: 24/06/2005, 20h23

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