Utiliser Visual C# pour lier un contrôle DataGrid à un tableau d’objets ou de structures
Cet article fournit des informations sur la façon de lier un tableau d’objets à un contrôle DataGrid.
Version d’origine du produit : Visual C#
Numéro de la base de connaissances d’origine : 315786
Résumé
L’exemple de cet article se compose d’un formulaire Windows avec un contrôle DataGrid pour afficher les valeurs de propriété d’objet et quatre boutons de commande pour parcourir les lignes du contrôle DataGrid.
Configuration requise
Cet article suppose que vous êtes familiarisé avec les rubriques suivantes :
- Concepts de programmation Visual C#
- Visual C# .NET
Concevoir la classe
Une classe qui doit être liée à un contrôle doit avoir des accesseurs de propriété. Toute propriété qui doit être liée doit avoir la méthode property Set
et la méthode property Get
. L’exemple de classe utilisé dans cet article a trois membres. Un seul membre est décrit dans cet article. Un constructeur paramétrable a également été fourni. Toutefois, il ne s’agit pas d’une exigence.
public class guitar
{
private string make;
private string model;
private short year;
public guitar()
{
}
public guitar(string make, string model, short year)
{
Make=make;
Model=model;
Year=year;
}
public string Make
{
get
{
return make;
}
set
{
make = value;
}
}
}
Ajouter des instances de classe à un tableau
Pour créer des instances et les ajouter au tableau, procédez comme suit :
Déclarez un tableau.
Créez des instances de la classe, puis ajoutez-les au tableau.
private guitar[] arr=new guitar[3]; arr[0] = new guitar("Gibson", "Les Paul", 1958); arr[1] = new guitar("Fender", "Jazz Bass", 1964); arr[2] = new guitar("Guild", "Bluesbird", 1971);
Lier le tableau au contrôle DataGrid
Une fois le tableau rempli, définissez la propriété DataSource du contrôle DataGrid sur le tableau. Les colonnes du contrôle DataGrid sont remplies en fonction des propriétés pour lesquelles des accesseurs de propriété dans l’étendue existent.
dataGrid1.DataSource=arr;
Fournir un moyen de parcourir le tableau
Vous pouvez utiliser CurrencyManager
pour parcourir le tableau. Pour ce faire, associez CurrencyManager
au BindingContext
du contrôle, dans ce cas, au tableau .
private CurrencyManager currencyManager=null;
currencyManager = (CurrencyManager)dataGrid1.BindingContext[arr];
La CurrencyManager
classe a une Position
propriété que vous pouvez manipuler pour itérer sur les membres du tableau. En ajoutant ou en soustrayant la valeur actuelle de Position
, vous pouvez parcourir les lignes du DataGrid
contrôle.
//Move forward one element.
currencyManager.Position++;
//Move back one element.
currencyManager.Position--;
//Move to the beginning.
currencyManager.Position = 0;
//Move to the end.
currencyManager.Position = arr.Length - 1;
Exemple pas à pas
Dans Visual C# .NET, créez un projet d’application Windows. Form1 est créé par défaut.
Ajoutez une classe au projet.
Remplacez le code dans Class1.cs par le code suivant.
public class guitar { private string make; private string model; private short year; public guitar() { } public guitar(string Make, string Model, short Year) { make=Make; model=Model; year=Year; } public string Make { get { return make; } set { make = value; } } public string Model { get { return model; } set { model = value; } } public short Year { get { return year; } set { year = value; } } }
Fermez la fenêtre de code Class1.cs, puis basculez vers l’Designer Formulaire.
Ajoutez un contrôle DataGrid à Form1. Dimensionner le contrôle DataGrid pour prendre en charge quatre colonnes et trois lignes.
Ajoutez quatre contrôles Button à Form1, puis organisez les boutons horizontalement.
Remplacez la propriété Text de Button1 par Suivant.
Remplacez la propriété Text de Button2 par Précédent.
Remplacez la propriété Text de Button3 par First.
Remplacez la propriété Text de Button4 par Last.
Ajoutez ce code à la classe
Form1
.private guitar[] arr=new guitar[3]; private CurrencyManager currencyManager=null;
Basculez vers l’Designer Formulaire, cliquez avec le bouton droit sur le formulaire, puis cliquez sur Propriétés.
Cliquez sur l’icône Événements , puis double-cliquez sur l’événement de chargement pour ajouter l’événement
Form1_Load
à votre code.Ajoutez le code suivant à l’événement
Form1_Load
.arr[0] = new guitar("Gibson", "Les Paul", 1958); arr[1] = new guitar("Fender", "Jazz Bass", 1964); arr[2] = new guitar("Guild", "Bluesbird", 1971); currencyManager = (CurrencyManager)dataGrid1.BindingContext[arr]; dataGrid1.DataSource=arr;
Basculez pour afficher le formulaire Designer.
Double-cliquez sur Suivant, puis ajoutez le code suivant à l’événement
button1_Click
.currencyManager.Position++;
Double-cliquez sur Précédent, puis ajoutez le code suivant à l’événement
button2_Click
.currencyManager.Position--;
Double-cliquez sur First, puis ajoutez le code suivant à l’événement
button3_Click
.currencyManager.Position = 0;
Double-cliquez sur Dernier, puis ajoutez le code suivant à l’événement
button4_Click
.currencyManager.Position = arr.Length - 1;
Générez et exécutez le projet.
Cliquez sur les boutons de commande pour vous déplacer parmi les lignes du contrôle DataGrid.
Remarque
Vous pouvez modifier les valeurs des objets si vous le souhaitez.
Utiliser une structure au lieu d’une classe
Les règles de liaison d’une structure sont les mêmes que les règles de liaison d’un objet. La propriété qui est un accesseur membre est obligatoire. Une structure créée à cet effet ressemble à une classe .
Pour établir une liaison à un tableau de structures, procédez comme suit.
Modifier la définition du module de classe Class1.cs dans l’exemple à partir de
public class guitar
à l’exemple suivant :
public struct guitar
Commentez le constructeur par défaut, comme suit.
//public guitar() //{ //}
Générez et réexécutez l’exemple de programme et vérifiez qu’il fonctionne avec un tableau de structures.
References
Pour plus d’informations, consultez la rubrique Consommateurs de données sur Windows Forms dans l’aide de Visual Studio .NET Online.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour