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 :

Blend : Personnaliser une listbox avec des donneés bindées


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut Blend : Personnaliser une listbox avec des donneés bindées
    Bonjour à tous,

    Je suis toujours en train de m'entrainer sous blend à personnaliser mon projet au niveau graphique.

    Alors malgré les tutos et autre je suis bloqué sur quelque chose d'assez genant :

    Je cherche à personnaliser une listbox.
    En gros, j'ai créé un nouveau projet, j'ai ajouté une listbox, j'ai ajouté une source de données XML (je me suis collé sur le flux RSS du journal le monde pour l'exemple) puis j'ai mis comme Itemssource sur la listbox le flux rss (tableau item du flux rss).
    Donc là pas de probleme je vois tous les titres du monde apparaitre dans la listbox, c'est plutot cool.

    Maintenant, j'aimerai faire une personnalisation de mes items :
    Là ca se complique !
    Les tutoriels Microsoft pour la personnalisation des listitems se basent sur l'ajout d'un listItem à la listbox, et non à l'utilisation d'une source de données déjà bindée. C'est là que le flou artistique commence.

    Que faire pour pouvoir modifier le listitem alors que j'ai déjà des données bindées et que donc je ne peux pas ajouter un listitem à ma listbox ?

    Essayez par exemple de faire ce que je viens d'expliquer : ajoutez un listbox, ajoutez une source de données XML sur l'adresse suivante : http://www.lemonde.fr/rss/une.xml
    Ensuite dans la propriété Itemssource du listbox, ajoutez la source XML en vous calant sur le Noeud Item (tableau) de la source XML.

    Question 1 : essayez de modifier la couleur de l'item lorsque celui ci est selected. Si vous y arrivez je suis preneur de la solution.

    Question 2 : Imaginons que l'on veuille voir dans chaque item, la donnée (donc dans notre cas, le titre fourni par le flux rss) et qu'à coté de cela, on veuille voir un rectangle bleu. Puis lorsque l'item est selected, on veut que le rectangle devienne rouge. Comment peut-on arriver à cela ?

    Voici donc mon flou artistique, j'ai tenté moult solutions mais je n'arrive pas à réaliser ces deux choses. Pouvez vous m'aider svp ?
    Merci d'avance

    @ bientot

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Citation Envoyé par zax-tfh Voir le message
    Les tutoriels Microsoft pour la personnalisation des listitems se basent sur l'ajout d'un listItem à la listbox, et non à l'utilisation d'une source de données déjà bindée. C'est là que le flou artistique commence.
    ça ne change rien puisqu'il faut modifier le template associé à un élément de la listbox (ItemTemplate). Clic droit sur ta lisbox, Edit other templates, Edit generated items.

    Regarde ici: http://www.designerwpf.com/2007/12/1...stboxwhatever/


    Citation Envoyé par zax-tfh Voir le message
    Question 1 : essayez de modifier la couleur de l'item lorsque celui ci est selected. Si vous y arrivez je suis preneur de la solution.
    Il faut modifier le style du ListBoxItem.
    Menu Object -> Edit Other Styles -> Edit ItemContainerStyle -> Create a copy
    Là t'es au niveau du ItemContainerStyle.
    Menu Object -> Edit Control Parts -> Edit a copy
    Et là t'es arrivé, tu doit avoir les différents triggers (selected, enabled). Tu sélectionne la bordure (Bd) et tu modifie son background dans le panneau de propriétés.

    Citation Envoyé par zax-tfh Voir le message
    Question 2 : Imaginons que l'on veuille voir dans chaque item, la donnée (donc dans notre cas, le titre fourni par le flux rss) et qu'à coté de cela, on veuille voir un rectangle bleu. Puis lorsque l'item est selected, on veut que le rectangle devienne rouge. Comment peut-on arriver à cela ?
    Au même niveau que précédemment:
    Tu englobes le Content Presenter (se trouvant dans Bd) dans un stackpanel. Tu rajoutes un rectangle dans le stackpanel et tu joues avec les triggers et la couleur.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut
    Salut,

    Edit : Message supprimé : faut que j'apprenne à lire...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut
    Il y a un truc que je n'arrive pas à faire :

    Je suis dans l'edition du stye du listboxitem, j'essaye désespérément d'éditer la couleur de fond du bd mais il ne veut rien savoir. Si je clique sur l'onglet dégradé rien ne se passe.
    Quand je clique sur le noeud template du listboxitemstyle et que je clique sur l'onglet dégradé, là il m'applique bien un dégradé mais ne m'affiche pas le panneau ou je peux regler les couleurs.

    Assez space comme probleme isn't it ? Est-ce que j'ai raté une étape docteur ?

    En tout cas, grand merci deja pour la réponse précédente !
    PS : j'allais oublier : quand j'ai cliqué sur le dégradé au niveau du template du listboxitemstyle, et qu'il m'a bien appliqué un dégradé à chaque item, si je clique sur Bd, je vois bien mon dégradé en background mais aucun moyen de le modifier, et tout le panneau de reglage des couleurs et entouré de orange...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut
    J'ai finalement trouvé
    Quand on rencontre ce genre de panneau entouré de orange, il faut cliquer sur le petit carré qui sert à afficher le menu des resources et compagnie. (il doit etre orange lui aussi). Ensuite il faut cliquer sur Convertir en resource locale.

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

Discussions similaires

  1. Simuler une listbox avec des couleurs
    Par Invité dans le forum Contribuez
    Réponses: 9
    Dernier message: 19/03/2020, 20h49
  2. Où trouver une listbox avec des checkbox dedans ?
    Par zarbiman dans le forum ASP.NET
    Réponses: 5
    Dernier message: 17/09/2007, 08h59
  3. Charger une popup avec des données PHP
    Par philou029 dans le forum Langage
    Réponses: 2
    Dernier message: 06/06/2007, 16h45
  4. Réponses: 12
    Dernier message: 22/06/2006, 12h09
  5. [VBA-A]Remplir une textbox avec des données de tables.
    Par cuicui08 dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/03/2006, 10h28

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