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 :

recuperer Listview et gridview en code behind


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 192
    Par défaut recuperer Listview et gridview en code behind
    Bonjour

    J'ai créé la listview suivante dans laquelle j'ai rajouté une checkbox.
    Je voulais savoir comment récupérer le contenu de la listview en code behind pour parcourir chaque ligne et récupérer la valeur de la checkbox.
    Merci de votre aide

    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
    19
     
     <ListView Margin="0,129.948,0,26.656" Name="lvListLeft"
                     DisplayMemberPath="Cn"
                 ItemsSource="{Binding}" ItemContainerStyleSelector="{DynamicResource ugmStyleSelector}"
                       Styles:GridViewSort.AutoSort="True"
                      >
                <ListView.Resources>
                    <DataTemplate x:Key="chkTemplate">
                        <CheckBox IsChecked="false" IsEnabled="true" />
                    </DataTemplate>
                </ListView.Resources>
     
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Cn}" Styles:GridViewSort.PropertyName="Cn" />
                        <GridViewColumn Header="Add"  CellTemplate="{StaticResource chkTemplate}"/>
                    </GridView>
                </ListView.View>
            </ListView>

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    regarde sur mon blog
    http://www.dsw.fr/blogs/index.php?p=...&c=1&tb=1&pb=1
    ca devrait te donner des idees

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 192
    Par défaut
    Salut

    Merci beaucoup pour ta réponse.
    Je recontre encore un problème.
    Ma listview contient un objet "monObj" bindé sur la propriété Cn, et j'y ai rajouté le gridview pour inclure la checkbox. (post d'avant)
    Hors il faudrait que je récupère chaque ligne de ma listview pour analyser et l'objet MonObj et la valeur de la checkbox.
    Mais lorsque je fait le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                foreach (ListViewItem lvi in lvListLeft.Items)
                {
                    CheckBox o = FindVisualChild<CheckBox>(lvi) as CheckBox;
                }
    Il ne rentre pas dans la bouche foreach et me dit qu'il ne peut pas convertir "MonObj" en "ListViewItem"
    Es ce que ma méhode est la bonne ?
    Merci d'avance

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    Il faut bien comprendre que le listviewitem et l'objet c'est pas la meme chose
    quand tu fais lvListLeft.Items tu as la liste de tes objets pas les listviewitems

    j'ai pas bien compris ce que tu voulais faire au juste ...
    mais bon soit tu regarde la valeur bindé sur ta checkbox dans tes objets
    soit tu parse la listview pour reccup les listviewitems et dans les listviewitems tu cherche la checkbox

    sinon tu fais un tit projet d'exemple et tu le glisse ici ca sera plus simple

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 192
    Par défaut
    Salut

    Effectivement je m'embrouille un peu dans WPF
    Je t'ai mis en pièce jointe une image de ma listview.

    Nom : Listview.jpg
Affichages : 85
Taille : 17,2 Ko.

    Lorsque l'on appuie sur le boutton apply changes, je veux récupérer en code behind toutes les lignes dont les cases sont cochés pour les traiter ensuite.
    Comment puis-je faire cela. J'espère que cela est plus clair
    Merci

    Voicis mon code behind (qui ne marche pas ;-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
            private void btApplyChanges_Click(object sender, RoutedEventArgs e)
            {
                foreach (ListViewItem lvi in lvListLeft.Items)
                {
                    CheckBox o = FindVisualChild<CheckBox>(lvi) as CheckBox;
                  if o.Ischecked
                       {
                    ............
                     }
                }
            }
    Voicis mon code XAML de ma listview

    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
    19
     
     <ListView Margin="0,129.948,0,26.656" Name="lvListLeft"
                     DisplayMemberPath="Cn"
                 ItemsSource="{Binding}" ItemContainerStyleSelector="{DynamicResource ugmStyleSelector}"
                       Styles:GridViewSort.AutoSort="True"
                      >
                <ListView.Resources>
                    <DataTemplate x:Key="chkTemplate">
                        <CheckBox IsChecked="false" IsEnabled="true" />
                    </DataTemplate>
                </ListView.Resources>
     
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Cn}" Styles:GridViewSort.PropertyName="Cn" />
                        <GridViewColumn Header="Add"  CellTemplate="{StaticResource chkTemplate}"/>
                    </GridView>
                </ListView.View>
            </ListView>

  6. #6
    Membre éprouvé Avatar de Thrud
    Profil pro
    Développeur .NET
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Par défaut
    Bonjour,

    tu peux utiliser la methode ContainerFromItem() de l'itemContainerGenerator de ta listview pour faire le lien entre ton objet et le ListViewItem qui le contient.

    Un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                foreach (object obj in lvListLeft.Items)
                {
                    ListViewItem lvi = (ListViewItem) lvListLeft.ItemContainerGenerator.ContainerFromItem(obj);
                    CheckBox o = FindVisualChild<CheckBox>(lvi) as CheckBox;
                }

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 192
    Par défaut
    Merci beaucoup à vous deux ça fonctionne ! ;-)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/11/2009, 15h58
  2. Recuperer un Dataset créé dans code-behind
    Par alexking2005 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 27/10/2009, 08h59
  3. Réponses: 3
    Dernier message: 15/09/2009, 08h33
  4. ajouter des colonnes à un gridview en code behind
    Par tortuegenie dans le forum ASP.NET
    Réponses: 1
    Dernier message: 17/02/2009, 14h47
  5. gridview en code behind
    Par tortuegenie dans le forum ASP.NET
    Réponses: 3
    Dernier message: 25/08/2008, 11h40

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