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 :

  1. Déclarez un tableau.

  2. 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

  1. Dans Visual C# .NET, créez un projet d’application Windows. Form1 est créé par défaut.

  2. Ajoutez une classe au projet.

  3. 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;
            }
        }
    }
    
  4. Fermez la fenêtre de code Class1.cs, puis basculez vers l’Designer Formulaire.

  5. Ajoutez un contrôle DataGrid à Form1. Dimensionner le contrôle DataGrid pour prendre en charge quatre colonnes et trois lignes.

  6. Ajoutez quatre contrôles Button à Form1, puis organisez les boutons horizontalement.

  7. Remplacez la propriété Text de Button1 par Suivant.

  8. Remplacez la propriété Text de Button2 par Précédent.

  9. Remplacez la propriété Text de Button3 par First.

  10. Remplacez la propriété Text de Button4 par Last.

  11. Ajoutez ce code à la classe Form1.

    private guitar[] arr=new guitar[3];
    private CurrencyManager currencyManager=null;
    
  12. Basculez vers l’Designer Formulaire, cliquez avec le bouton droit sur le formulaire, puis cliquez sur Propriétés.

  13. 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.

  14. 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;
    
  15. Basculez pour afficher le formulaire Designer.

  16. Double-cliquez sur Suivant, puis ajoutez le code suivant à l’événement button1_Click .

    currencyManager.Position++;
    
  17. Double-cliquez sur Précédent, puis ajoutez le code suivant à l’événement button2_Click .

    currencyManager.Position--;
    
  18. Double-cliquez sur First, puis ajoutez le code suivant à l’événement button3_Click .

    currencyManager.Position = 0;
    
  19. Double-cliquez sur Dernier, puis ajoutez le code suivant à l’événement button4_Click .

    currencyManager.Position = arr.Length - 1;
    
  20. Générez et exécutez le projet.

  21. 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.

  1. Modifier la définition du module de classe Class1.cs dans l’exemple à partir de

    public class guitar
    

    à l’exemple suivant :

    public struct guitar
    
  2. Commentez le constructeur par défaut, comme suit.

    //public guitar()
    //{
    //}
    
  3. 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.