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

VB.NET Discussion :

Remplir une listview a partir de control (textbox, calendar, etc) [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Autodidacte débutant
    Inscrit en
    Mai 2016
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Autodidacte débutant

    Informations forums :
    Inscription : Mai 2016
    Messages : 55
    Par défaut Remplir une listview a partir de control (textbox, calendar, etc)
    Bonjour à tous,

    J'essaye de remplir une listview depuis un long moment mais je n'y arrive pas.

    J'ai tout d'abord plusieurs outils qui me servent à saisir mes données :

    un calendarDatePicker
    3 textbox
    et enfin un bouton valider
    J'aimerai qu'avec un clic sur le bouton valider, le contenu de ces controls soit ajouté dans ma listview sur une seule et même ligne.

    Voici le code XAML de la 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
    20
    21
    22
     
    <ListView Name="listeDevoir" Grid.Row="1"  Margin="20">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Width="auto"
                                   FontFamily="Comic"
                                   FontSize="28"/>
                            <TextBlock Width="auto"
                                   FontFamily="Comic"
                                   FontSize="28"/>
                            <TextBlock Width="auto"
                                   FontFamily="Comic"
                                   FontSize="28"/>
                            <TextBlock Width="auto"
                                   FontFamily="Comic"
                                   FontSize="28"/>
                            <CheckBox IsChecked="False"/>
                        </StackPanel>                   
                    </DataTemplate>
                </ListView.ItemTemplate>            
            </ListView>

    Pour ce qui est du code VB le voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub buttonValiderdevoir_Click(sender As Object, e As RoutedEventArgs)
            Dim nouveauDevoir As New Devoir
            nouveauDevoir.newDevoir(dateDevoir.Date.ToString, textBoxType.Text, textBoxContenu.Text, textBoxClasse.Text, False)
            listeDevoir.Items.Add(nouveauDevoir)
        End Sub
    Si je lance le bouzin et que je clic sur mon bouton j'ai bien une ligne qui se rajoute à ma listview mais vide.

    Après une recherche sur internet, je tombe sur cette histoire de binding. Malheureusement le langage utilisé et C#.

    Je constate malgré tout qu'une classe est créée et ensuite que les items sont ajoutés dans la liste.

    Dans le xaml on ajoute un {Binding "attribut de classe"} (si j'ai bien tout compris)

    J'ai une classe comme vous pouvez le voir :

    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
     
    Public Class Devoir
            Private _dateDevoir As String
            Private _typeDevoir As String
            Private _contenuDevoir As String
            Private _classeDevoir As String
            Private _faitDevoir As Boolean
     
            Public Sub newDevoir(ByVal dateD As String, ByVal typeD As String, ByVal contenuD As String, classeD As String, faitD As Boolean)
                _dateDevoir = dateD
                _typeDevoir = typeD
                _contenuDevoir = contenuD
                _classeDevoir = classeD
                _faitDevoir = faitD
            End Sub

    J'essaye en ajoutant {Binding _dateDevoir} dans la déclaration Xaml correspondante et idem pour tous les autres mais sans succès.

    Pourriez vous m'aiguiller vers la bonne direction je vous prie ?



    Cordialement

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    bonjour,

    Lorsque tu souhaites utiliser un contrôle de la boite à outils de ton EDI (dans ton cas Listview) il faut regarder sur MSDN comment est constituee et comment utiliser cette classe "Listview" (propriétés, méthodes et implémentation)

    https://msdn.microsoft.com/fr-fr/lib...v=vs.110).aspx

    Ensuite on se familiarise avec l outil (listview) dans une sorte de mini projet.

    En breffff ......

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    'on delare un tableau de string de taille '5' dans le cas ou ton listiew possède 5 colonnes !
    dim str as string() = new string (4){}
    'on affecte les valeurs a chaque future colonne
    str(0) = dateDevoir.Date.ToString
    str(1) = textBoxType.Text
    str(2) = textBoxContenu.Text
    str(3) = textBoxClasse.Text
    str(4) = "Non"
    'on declare et instancie un listviewitem qui peuplera une ligne de ton controle listview en tenant compte des 5 colonnes !
    Dim lvi As New ListViewItem(str)
    'on ajoute le listviewitem a ton listview
    listeDevoir.Items.Add(lvi)
    NB : j'ai fais au + simple, tu peux bien évidemment utiliser ta classe Devoir.

  3. #3
    Membre actif
    Homme Profil pro
    Autodidacte débutant
    Inscrit en
    Mai 2016
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Autodidacte débutant

    Informations forums :
    Inscription : Mai 2016
    Messages : 55
    Par défaut
    Bonjour wallace1,

    Je comprend ce que tu me dis et la communauté sur quelques forums que ce soit dit sensiblement la même chose.
    Cependant je n'arrive pas à comprendre le site de microsoft.
    Quand je cherche un renseignement sur les Listview (et crois moi je l'ai fait) ce que je vois sur le site me perds encore d'avantage.

    Par exemple sur l'exemple donné par microsoft je ne vois rien qui correspond à ce que tu me donnes toi.

    Je n'ai pas un gros bagage et il m'est difficile de décrypter l'aide de microsoft aussi fournit soit il.
    J'apprend mieux avec des exemples concrets qui correspondent à mes besoins.

    Je te remercie de me permettre d'avancer sur mon problème avec ton code.
    Mais vois tu même ce code là me génère une erreur que je ne m'explique pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    'on delare un tableau de string de taille '5' dans le cas ou ton listiew possède 5 colonnes !
    dim str as string() = new string (4){}
    'on affecte les valeurs a chaque future colonne
    str(0) = dateDevoir.Date.ToString
    str(1) = textBoxType.Text
    str(2) = textBoxContenu.Text
    str(3) = textBoxClasse.Text
    str(4) = "Non"
    'on declare et instancie un listviewitem qui peuplera une ligne de ton controle listview en tenant compte des 5 colonnes !
    Dim lvi As New ListViewItem(str)
    'on ajoute le listviewitem a ton listview
    listeDevoir.Items.Add(lvi)
    La partie déclaration du listviewitem m'affiche une erreur sur le (str)
    "Arguments trop nombreux pour 'Public Overloads Sub New()"

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    oui et c'est tout a fait normal (promis ce n est pas volontaire^^) ......
    relis bien cette ligne :
    'on delare un tableau de string de taille '5' dans le cas ou ton listiew possède 5 colonnes !
    puis cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim str as string() = new string (4){}
    enfin comptes le nombre de colonne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    str(0) = dateDevoir.Date.ToString
    str(1) = textBoxType.Text
    str(2) = textBoxContenu.Text
    str(3) = textBoxClasse.Text
    str(4) = "Non"
    Conclusion :

    Premiere ligne : Je dis en commentaire que mon tableau est de taille 5
    Deuxieme ligne : J'affecte une taille de 4 a mon tableau de string
    Les autres lignes d affectation sont au nombre de 0 à 4 = ce qui corresponds a une taille de 5.
    Consequence : l'affectation str(4) = "Non" ne se fera pas car on est en dehors des limites du tableau : new string(4){}
    = taille 4 alors qu on a affecté 5 éléments !

    Tu sais ce qu il te reste à faire.

    La programmation c est aussi surtout une question de comprehension dans l énoncé

    Bon courage.

    @+

  5. #5
    Membre actif
    Homme Profil pro
    Autodidacte débutant
    Inscrit en
    Mai 2016
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Autodidacte débutant

    Informations forums :
    Inscription : Mai 2016
    Messages : 55
    Par défaut
    Pardon je me suis mal exprimé sans doute.
    Indépendamment de la taille du tableau (que je n'avait pas vérifié) l'erreur s'affiche bien avant la compilation en fait le tableau est souligné en rouge dans la déclaration du listview.

  6. #6
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Ledidic Voir le message
    Pardon je me suis mal exprimé sans doute.
    Indépendamment de la taille du tableau (que je n'avait pas vérifié) l'erreur s'affiche bien avant la compilation en fait le tableau est souligné en rouge dans la déclaration du listview.
    screenshot please .....

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

Discussions similaires

  1. [Débutant] Remplir une listview à partir d'un bouton de recherche
    Par NABZ27 dans le forum C#
    Réponses: 1
    Dernier message: 01/10/2014, 13h50
  2. Remplir une base MySql à partir des textBox
    Par Chevaan dans le forum C#
    Réponses: 7
    Dernier message: 02/03/2012, 17h07
  3. Remplir une listview à partir d'un tableau Array
    Par Gecoo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 29/04/2010, 16h05
  4. [XL-2007] Remplir une listview à partir d'une feuille de calcul ou de textbox
    Par rvtoulon dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/10/2009, 23h43
  5. Remplir une ListView avec une BD
    Par manikou dans le forum MFC
    Réponses: 1
    Dernier message: 17/05/2005, 09h48

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