Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article fournit des informations sur la façon de lier un tableau d’objets à un contrôle DataGrid.
Version du produit d’origine : Visual C#
Numéro de 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 des propriétés d’objet et quatre boutons de commande pour parcourir les lignes du contrôle DataGrid.
Spécifications
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 de propriété Set et la méthode de propriété Get . L’exemple de classe utilisé dans cet article comporte trois membres. Un seul membre est décrit dans cet article. Un constructeur paramétrable a également été fourni. Toutefois, ce n'est pas 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 instances 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és 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-le CurrencyManager au BindingContext contrôle, dans ce cas, le 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 du Positioncontrôle, 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 étape par étape
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 le Concepteur de formulaires.
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 Next.
Remplacez la propriété Text de Button2 par Previous.
Remplacez la propriété Text de Button3 par First.
Remplacez la propriété Text de Button4 par Last.
Ajoutez le code suivant à la classe
Form1.private guitar[] arr=new guitar[3]; private CurrencyManager currencyManager=null;Basculez vers le Concepteur de formulaires, 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 Concepteur de formulaires.
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 Last, 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 entre les lignes du contrôle DataGrid.
Note
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 identiques aux règles de liaison d’un objet. La propriété qui est des accesseurs membres est requise. Une structure créée à cet effet ressemble à une classe.
Pour établir une liaison à un tableau de structures, procédez comme suit.
Modifiez la définition du module de classe Class1.cs dans l’exemple à partir de
public class guitardans l’exemple suivant :
public struct guitarCommentez 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.