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

C# Discussion :

[WPF] Ajouter dynamiquement des valeurs dans un Datagrid


Sujet :

C#

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2018
    Messages : 8
    Par défaut [WPF] Ajouter dynamiquement des valeurs dans un Datagrid
    Bonjour à tous,

    Je cherche à ajouter dynamiquement des lignes extraites depuis un fichier texte en fonction des mots qu'elles contiennent dans un datagrid.

    J'ai réussi à le faire avec un datagridview mais pas avec un datagrid et comme je souhaite développer l'application finale en wpf....

    j'essai dans un premier temps d'ajouter des lignes extraites d'un fichier texte sans aucun "filtre"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
               string[] lines = System.IO.File.ReadAllLines(@"C:\Users\Gwendal\Desktop\test\test.txt");
                foreach (string ligne in lines)
                {
                    dg1.Items.Add(ligne);
                }
    Voilà ce que j'obtiens :

    Nom : Capture.JPG
Affichages : 146
Taille : 16,5 Ko

    Si quelqu'un à une idée ou une autre façon de faire je suis preneur.

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    il faut utiliser la DP DataGrid.Columns....et un class Item-voir ci-apres)

    code behind.cs du form user revu:

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    namespace WpfApplication1
    {
        /// <summary>
        /// Logique d'interaction pour MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
     
            public MainWindow()
            {
                InitializeComponent();
            }
     
            private void btn_Click(object sender, RoutedEventArgs e)
            {          
     
                string[] lines = System.IO.File.ReadAllLines(@"C:\Users\Gwendal\Desktop\test\test.txt");
                pathfile = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
     
                foreach (string ligne in lines)
                {
                    Item it = new Item(ligne);
                     //Add the column to the DataGrid
                    dgi.Items.Add(it);
                }
            }
        }
        public class Item 
        {
            public string Ligne { get; set; }
            public Item( string pligne)
            {
                Ligne = pligne;
            }
        }
    }
    code xaml du form revu:
    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <Window x:Class="WpfApplication1.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <StackPanel >
            <Button x:Name="btn" Content="bouton" Click="btn_Click"/>
            <DataGrid  x:Name="dgi">
                <DataGrid.Columns>
                    <DataGridTextColumn Binding="{Binding Ligne}"></DataGridTextColumn>
                </DataGrid.Columns> 
            </DataGrid>
        </StackPanel>
    </Window>

    bon code...

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2018
    Messages : 8
    Par défaut
    Super merci pour ton aide. Il me reste un petit soucis. En utilisant ton code, le dg contient 2 colonnes au lieu d'une seule

    Nom : Capture.JPG
Affichages : 124
Taille : 28,8 Ko

  4. #4
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    rebonjour

    En fait il y a une seule colonne ,l'espace apres n'est pas une colonne ...
    Pour l'ajuster il faut utiliser le DataGridLength (c'est un analogue du GridLength du Panel Grid)

    code revu du btn_click
    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
     
    private void btn_Click(object sender, RoutedEventArgs e)
            {
               string[] lines = System.IO.File.ReadAllLines(@"C:\Users\Gwendal\Desktop\test\test.txt");
     
     
                // A RAJOUTER
                DataGridColumn col=  dgi.Columns[0];
                col.Width= new DataGridLength(10,DataGridLengthUnitType.Star);
     
                foreach (string ligne in lines)
                {
     
                    Item item = new Item(ligne);
                    //Add the item  to the DataGrid
                    dgi.Items.Add(item);
                }
            }
    Bon code...

  5. #5
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2018
    Messages : 8
    Par défaut
    Ça fonctionne merci beaucoup

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

Discussions similaires

  1. [Framework] Ajouter dynamiquement des champs dans la page
    Par yassineonline2013 dans le forum Spring
    Réponses: 1
    Dernier message: 11/06/2013, 09h49
  2. Ajout dynamique des champs dans un JFrame
    Par amine1980 dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 12/12/2011, 12h19
  3. ajout dynamique des option dans un select
    Par rochdi123 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/10/2009, 20h30
  4. Réponses: 2
    Dernier message: 28/03/2006, 11h45
  5. ajouter dynamiquement des items dans un popup menu
    Par Malone dans le forum Composants VCL
    Réponses: 7
    Dernier message: 23/08/2005, 16h08

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