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)
[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 :
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]