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 et wpf sur listbox


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Par défaut binding et wpf sur listbox
    bonjour,


    j'ai posté mon message dans la rubrique vb dotnet mais il me semble plus approprié de le posté dans la partie wpf !

    j'ai un problème qui ne devrait pas être compliqué à résoudre mais voilà déjà plusieurs jours que je me casse les dents sans réussir à trouver une réponse.

    je cherche à afficher une liste de personnes avec un id, un nom, un prenom et une date de naissance sur une listbox !
    le code xaml suivant fonctionne correctement sachant qu'elle est bindée sur une requête chargée par linq


    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <ListBox Margin="8,8,8,8" IsSynchronizedWithCurrentItem="True" Grid.Row="1" ItemsSource="{Binding}" ItemContainerStyle="{DynamicResource ListBoxItemStyle1}" Background="{x:Null}" Name="lstbox" Style="{DynamicResource ListBoxStyle2}">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Image Source="Gfx\MSN 2 (Custom).png" Margin="2"/>
                            <StackPanel Orientation="Vertical">
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="{Binding Path=Nom}" Margin="2"/>
                                    <TextBlock Text="{Binding Path=Prenom}" Margin="2"/>
                                </StackPanel>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="{Binding Path=DatedeNaissance}" Margin="2"/>
                                </StackPanel>
                            </StackPanel>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
    le chargement de ma fenêtre appelle le code suivant :


    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub New()
            MyBase.New()
            Me.InitializeComponent()
            Dim clients = From c In db.tblClientsEtatCivil Order By c.Nom Select c.Id, c.Nom, c.Prenom, c.DatedeNaissance
            Me.lstbox.ItemsSource = clients
        End Sub
    jusque là pas de problème, je souhaiterais récupérer maintenant en cliquant sur une ligne de ma listbox l'id, le nom ou le prenom et non pas la totalité du contenu de la ligne :

    la propriété lstbox.SelectedItem me renvoie systématiquement une chaîne avec la totalité de la ligne !

    j'ai essayé également en créant un label en bindant ElementName sur le champ SelectedItem.id rien n'y fait non plus alors si quelqu'un a une idée je suis preneur !

    merci d'avance

  2. #2
    Membre chevronné Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Par défaut
    Salut,
    fais une structure ou une classe "Personne". En principe ListBox.SelectedItem devrait alors te renvoyer une instance de ce type, donc tu le caste et tu as accès à ce que tu veux. (Tu peux créer les instances inline dans la requête Linq).

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Par défaut wpf et binding suite
    débutant en Dotnet, je vais essayer d'exploiter tes infos et chercher à créer une instance sur la requête linq !
    si tu peux me donner quelques explications supplementaires sur la création de l'instance et le cast !

    en tout cas merci pour les infos !

Discussions similaires

  1. bind Click sur Listbox
    Par shaiHulud dans le forum Tkinter
    Réponses: 4
    Dernier message: 10/12/2013, 18h10
  2. Binding sur ListBox bloquant
    Par thelpi dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 08/06/2009, 11h35
  3. WPF donner le selectedItem sur Listbox
    Par scapefrom dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 27/02/2009, 21h08
  4. ControlTipText sur ListBox ?
    Par Australia dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 15/04/2008, 07h48
  5. c# 1.1 déselection sur listbox
    Par pepedupuis dans le forum Windows Forms
    Réponses: 5
    Dernier message: 26/09/2006, 21h09

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