Insérer des données (par le code) dans un DataGrid WPF

Dans cet article je décris la manière d’insérer des données (par le code), dans un DataGrid en WPF (C#). Super pratique lorque l’on souhaite modifier dynamiquement le contenu d’un tableau à l’aide d’une base de données.

Création du DataGrid

Pour commencer, il faut insérer un DataGrid basique dans le fichier XAML.
Ce DataGrid va s’appeler “dataGrid1” (nom pas défaut)

1creationDataGrid

[csharp]
<DataGrid Height="200" HorizontalAlignment="Left" Margin="150,50,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="350" />
[/csharp]

Classe Utilisateur

Maintenant dans le code (fichier MainWindow.xaml.cs), il faut ajouter l’objet ‘Utilisateur’ :

[csharp]
public class Utilisateur
{
public int ID { get; set; }
public string Nom { get; set; }
public string Prenom { get; set; }
public DateTime DateNaissance { get; set; }
}
[/csharp]

Création de la liste d’objets

Une fois l’objet ‘Utilisateur’ créé, il va falloir créer une liste d’objets que nous allons ensuite affecter au DataGrid :

[csharp]
public List<Utilisateur> listeUtilisateurs()
{
List<Utilisateur> users = new List<Utilisateur>();
users.Add(new Utilisateur(){
ID = 1,
Nom= "Bronner",
Prenom= "Joey",
DateNaissance= new DateTime(1980, 5, 21) });
return users;
}
[/csharp]

Ajout de la liste à la source de données

Maintenant , la dernière étape consiste à affecter la liste d’utilisateurs aux données d’entrées de notre DataGrid.

[csharp]

<span style="font-size: small;">dataGrid1.ItemsSource = listeUtilisateurs();</span>

[/csharp]

Voilà, notre DataGrid devrait ressembler à ça en lançant l’appli :

2resultatDataGrid

A vous d’adapter ce code à une boucle de parcours de votre base de données ou autre.

_______________

Le code complet du fichier MainWindow.xaml.cs :

[csharp]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace dataGridApp
{
/// <summary>
/// Logique d’interaction pour MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
dataGrid1.ItemsSource = listeUtilisateurs();
}

public class Utilisateur
{
public int ID { get; set; }
public string Nom { get; set; }
public string Prenom { get; set; }
public DateTime DateNaissance { get; set; }
}

public List<Utilisateur> listeUtilisateurs()
{
List<Utilisateur> users = new List<Utilisateur>();
users.Add(new Utilisateur()
{
ID = 1,
Nom = "Bronner",
Prenom = "Joey",
DateNaissance = new DateTime(1980, 5, 21)
});
return users;
}
}
}

[/csharp]